Hi, On Mon, May 02, 2016 at 20:27:11 -0300, David Bremner wrote: > Michael Tautschnig <m...@debian.org> writes: > > > While building the package using our research compiler infrastructure the > > following type inconsistencies became apparent: when linking racket3m > > > > gcc -o racket3m gc2/main.o libracket3m.a ... > > > > the variable scheme_thread_locals takes different types within main.o and > > gmp.o > > (part of libracket3m.a), because gmp.o was compiled without MZ_PRECISE_GC > > being > > defined. Thus the keyex field is contained in struct > > Scheme_Inclhash_Object, but > > not in struct Scheme_Object. These differences may result in undefined > > behaviour. > > Can you verify this problem still occurs with racket 6.5 (just uploaded > to unstable)? Or provide a test case? >
Having built 6.5-1 the following is (still) reported: cd ..; gcc -o racket3m gc2/main.o libracket3m.a -Wl,-z,relro -pthread -ldl -lm -ldl -lm -rdynamic -lffi file /srv/jenkins-slave/workspace/sid-goto-cc-racket/racket-6.5/src/racket/src/../include/schthread.h line 520: reason for conflict at #this.toplevels_ht_->iso: number of members is different (1/2) struct Scheme_Inclhash_Object { struct Scheme_Object so; } struct Scheme_Inclhash_Object { struct Scheme_Object so; signed short int keyex; } error: conflicting types for variable `scheme_thread_locals' old definition in module `main' file /racket-6.5/src/racket/gc2/../src/salloc.c line 70 new definition in module `gmp' file /racket-6.5/src/racket/src/../include/schthread.h line 520 As said earlier, it seems MZ_PRECISE_GC isn't always set on the compiler command line. Best, Michael
signature.asc
Description: PGP signature