Skip to content

flto gcc flag only for data.table#3880

Merged
mattdowle merged 1 commit intomasterfrom
lto-dt-only
Sep 16, 2019
Merged

flto gcc flag only for data.table#3880
mattdowle merged 1 commit intomasterfrom
lto-dt-only

Conversation

@jangorecki
Copy link
Copy Markdown
Member

follow up of #3878

@jangorecki jangorecki added the ci label Sep 16, 2019
- mkdir -p ~/.R
- echo 'CFLAGS=-g0'> ~/.R/Makevars # No -g because -g increases datatable.so size from 0.5MB to 1.5MB and breaches 'installed package size <= 5MB' note
- echo 'CXXFLAGS=-g0' >> ~/.R/Makevars
- echo 'CFLAGS=-g0 -O2 -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2'> ~/.R/Makevars # -g0 because -g increases datatable.so size from 0.5MB to 1.5MB and breaches 'installed package size <= 5MB' note
Copy link
Copy Markdown
Member Author

@jangorecki jangorecki Sep 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are the defaults flags, they were disabled when writing just -g0 to Makevars so adding them now

@mattdowle mattdowle modified the milestone: 1.12.4 Sep 16, 2019
@mattdowle
Copy link
Copy Markdown
Member

I added the 1.12.4 milestone, but then removed it because this isn't the package. So it might be wasteful to pollute the tag with non-package tasks. On the other hand we're using the milestone tag to mark what's going ahead now, or not. Maybe the rule should be if it's tagged CI then we shouldn't mark the milestone.

@codecov
Copy link
Copy Markdown

codecov bot commented Sep 16, 2019

Codecov Report

Merging #3880 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #3880   +/-   ##
=======================================
  Coverage   99.42%   99.42%           
=======================================
  Files          72       72           
  Lines       13498    13498           
=======================================
  Hits        13421    13421           
  Misses         77       77

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9215366...3641656. Read the comment docs.

@jangorecki
Copy link
Copy Markdown
Member Author

I think it is fine to tag milestone for stuff that is in .Rbuildignore

@jangorecki
Copy link
Copy Markdown
Member Author

jangorecki commented Sep 16, 2019

Even when having such a rule, there is no way to ensure we align to it always. It is easier to have a rule the other way around.

@mattdowle mattdowle merged commit 84623f8 into master Sep 16, 2019
@mattdowle mattdowle deleted the lto-dt-only branch September 16, 2019 20:12
@jangorecki
Copy link
Copy Markdown
Member Author

jangorecki commented Sep 16, 2019

PR fixed previous flto issue: https://gitlab.com/Rdatatable/data.table/-/jobs/296558457


failure state is now due to grep, for some reason, ci yaml line

! grep "warning:" data.table.Rcheck/00install.out

is run in a job without leading !

grep "warning:" data.table.Rcheck/00install.out

OK, ! is reserved in yaml: https://stackoverflow.com/q/52145224/2490497


00install.log

* installing *source* package ‘data.table’ ...
** using staged installation
** libs
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c assign.c -o assign.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c between.c -o between.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c bmerge.c -o bmerge.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c chmatch.c -o chmatch.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c cj.c -o cj.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c coalesce.c -o coalesce.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c dogroups.c -o dogroups.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fastmean.c -o fastmean.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fcast.c -o fcast.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fifelse.c -o fifelse.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fmelt.c -o fmelt.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c forder.c -o forder.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c frank.c -o frank.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fread.c -o fread.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c freadR.c -o freadR.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c froll.c -o froll.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c frollR.c -o frollR.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c frolladaptive.c -o frolladaptive.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fsort.c -o fsort.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fwrite.c -o fwrite.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c fwriteR.c -o fwriteR.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c gsumm.c -o gsumm.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c ijoin.c -o ijoin.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c init.c -o init.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c inrange.c -o inrange.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c nafill.c -o nafill.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c nqrecreateindices.c -o nqrecreateindices.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c openmp-utils.c -o openmp-utils.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c quickselect.c -o quickselect.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c rbindlist.c -o rbindlist.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c reorder.c -o reorder.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c shift.c -o shift.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c subset.c -o subset.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c transpose.c -o transpose.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c types.c -o types.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c uniqlist.c -o uniqlist.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c utils.c -o utils.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c vecseq.c -o vecseq.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG    -fopenmp -fpic  -g -O3 -flto -fopenmp -Wall -pedantic -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c wrappers.c -o wrappers.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o data.table.so assign.o between.o bmerge.o chmatch.o cj.o coalesce.o dogroups.o fastmean.o fcast.o fifelse.o fmelt.o forder.o frank.o fread.o freadR.o froll.o frollR.o frolladaptive.o fsort.o fwrite.o fwriteR.o gsumm.o ijoin.o init.o inrange.o nafill.o nqrecreateindices.o openmp-utils.o quickselect.o rbindlist.o reorder.o shift.o subset.o transpose.o types.o uniqlist.o utils.o vecseq.o wrappers.o -fopenmp -lz -L/usr/lib/R/lib -lR
mv data.table.so datatable.so
if [ "" != "Windows_NT" ] && [ `uname -s` = 'Darwin' ]; then install_name_tool -id datatable.so datatable.so; fi
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/assign.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/between.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/bmerge.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/chmatch.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/cj.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/coalesce.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/dogroups.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fastmean.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fcast.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fifelse.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fmelt.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/forder.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/frank.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fread.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/freadR.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/froll.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/frollR.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/frolladaptive.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fsort.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fwrite.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/fwriteR.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/gsumm.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/ijoin.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/init.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/inrange.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/nafill.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/nqrecreateindices.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/openmp-utils.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/quickselect.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/rbindlist.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/reorder.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/shift.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/subset.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/transpose.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/types.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/uniqlist.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/utils.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/vecseq.o: plugin needed to handle lto object
/usr/bin/nm: /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00_pkg_src/data.table/src/wrappers.o: plugin needed to handle lto object
installing to /builds/Rdatatable/data.table/bus/test-rel-lin/data.table.Rcheck/00LOCK-data.table/00new/data.table/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (data.table)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants