This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC produces slightly different .o files on two consecutive runs in certain conditions


Hi all!

I am trying to do a https://reproducible-builds.org/ setup in my C / gnu11
/ cmake based FOSS project so I can cache valgrind results. The project is
https://fc-solve.shlomifish.org/ and it has a git repo at
https://github.com/shlomif/fc-solve .

Now, I've been running this fuzz building script -
https://github.com/shlomif/fc-solve/blob/master/fc-solve/scripts/fuzz-build.p6
- like "perl6 ../scripts/fuzz-build.p6 --rb -g" and while in clang it
reached seed=24 while producing identical recursive-build-dir output - in
gcc it failed in seed=6 with these two different outputs:

https://www.shlomifish.org/Files/files/arcs/reproducible-build-dirs.tar.xz

You can find the invocation of my cmake wrapping script in run-t-6.bash
namely:

/usr/bin/perl5.28.1
/home/shlomif/progs/freecell/git/fc-solve/fc-solve/source/Tatzer
--dbm-single-thread --dbm=kaztree --disable-err-strs --disable-flares
--disable-moves-track --disable-ni --disable-resume
--hard-code-reparent-states --judy --nfc=0 --nobuild-docs --num-stacks=13
--omit-frame --rcs --test-suite --unsafe --without-iter-handler
--without-max-num-states -r


this calls cmake like:

«

cmake -DCMAKE_BUILD_TYPE=release -DDATADIR=/usr/share
-DBUILD_STATIC_LIBRARY=
-DFCS_WHICH_COLUMNS_GOOGLE_HASH=FCS_WHICH_COLUMNS_GOOGLE_HASH__SPARSE
-DFCS_WHICH_STATES_GOOGLE_HASH=FCS_WHICH_STATES_GOOGLE_HASH__SPARSE
-DFCS_ENABLE_DBM_SOLVER=1 -DFCS_DBM_FREECELLS_NUM=0
-DFCS_WITHOUT_MAX_NUM_STATES=1 -DFCS_WITHOUT_ITER_HANDLER=1
-DFCS_DBM_SINGLE_THREAD=1 -DFCS_HARD_CODE_REPARENT_STATES_AS_FALSE=1
-DFCS_UNSAFE=1 -DFCS_DISABLE_MOVES_TRACKING=1 -DFCS_DISABLE_MULTI_FLARES=1
-DOPTIMIZATION_OMIT_FRAME_POINTER=1 -DFCS_DISABLE_ERROR_STRINGS=1
-DFCS_DISABLE_MULTI_NEXT_INSTS=1 -DFCS_ENABLE_RCS_STATES=1
-DFCS_WITHOUT_EXPORTED_RESUME_SOLUTION=1 -DFCS_WITH_TEST_SUITE=1
-DFCS_WITH_CONTEXT_VARIABLE=1 -DFCS_BUILD_DOCS=
-DFCS_HARD_CODED_NUM_FCS_FOR_FREECELL_ONLY=0 -DMAX_NUM_STACKS=13
-DMAX_NUM_BENCHMARK_THREADS=4
-DFCS_RCS_CACHE_STORAGE=FCS_RCS_CACHE_STORAGE_KAZ_TREE
-DSTATES_TYPE=COMPACT_STATES -DFCS_STACK_STORAGE=FCS_STACK_STORAGE_JUDY
-DFCS_DBM_BACKEND=kaztree -DFCS_STATE_STORAGE=FCS_STATE_STORAGE_JUDY
-DCMAKE_INSTALL_PREFIX=/usr
/home/shlomif/progs/freecell/git/fc-solve/fc-solve/source

»

can anyone tell me how I can get gcc to produce identical .o files on
subsequent runs?

Thanks!

-- 
Shlomi Fish http://www.shlomifish.org/

Buddha has the Chuck Norris nature.

Please reply to list if it's a mailing list post - http://shlom.in/reply .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]