Re: [Gc] FreeBSD/ia64 build error: ./include/private/gcconfig.h:2436:3: error: #error --> undefined ALIGNMENT
Anton Shterenlikht <[email protected]>
| Newsgroups | gmane.comp.programming.garbage-collection.boehmgc |
|---|---|
| Message-ID | <[email protected]> |
>From [email protected] Fri Apr 25 12:20:52 2014 > >On 2014-04-24 15:41, Anton Shterenlikht wrote: >> ===> Building for boehm-gc-7.2e >> /bin/sh ./libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -O2 -pipe -fno-strict-aliasing -fno-strict-aliasing -MT allchblk.lo -MD -MP -MF .deps/allchblk.Tpo -c -o allchblk.lo allchblk.c >> libtool: compile: cc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -O2 -pipe -fno-strict-aliasing -fno-strict-aliasing -MT allchblk.lo -MD -MP -MF .deps/allchblk.Tpo -c allchblk.c -fPIC -DPIC -o .libs/allchblk.o >> In file included from ./include/private/gc_priv.h:94, >> from allchblk.c:17: >> ./include/private/gcconfig.h:2436:3: error: #error --> undefined ALIGNMENT >> *** Error code 1 >> >> [...] >> >> I'm not sure if this is a regression, or that boehm-gc never >> built on ia64, and some recent changes in the FreeBSD ports >> infrastructure made lots of ports to depend on it. >> >> I'm happy to try patches, or provide other log files. > >It never built on FreeBSD/ia64 (which is why the port is marked with >NOT_FOR_ARCHS=ia64). See gcconfig.h [1]: the "ifdef IA64" section >doesn't have "ifdef FREEBSD" clause in it. Perhaps you could add >something like this to that section: > > # ifdef FREEBSD > # define OS_TYPE "FREEBSD" > # define CPP_WORDSZ 64 > # define ALIGNMENT 8 > # define SEARCH_FOR_DATA_START > # define FREEBSD_STACKBOTTOM > # ifdef __ELF__ > # define DYNAMIC_LOADING > # endif > # endif > >... and see if it builds and passes regression tests. > >(This is a wild guess though; even if it will compile, applications may >still crash or leak memory; unfortunately more knowledge of the process >memory layout in FreeBSD/ia64 is needed than I have). > >[1] https://github.com/ivmai/bdwgc/blob/master/include/private/gcconfig.h#L1814 >[2] https://github.com/ivmai/bdwgc/blob/master/doc/porting.html Thank you. With your patch I get to this failure: /bin/sh ./libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -O2 -pipe -fno-strict-aliasing -fno-strict-aliasing -MT mark_rts.lo -MD -MP -MF .deps/mark_rts.Tpo -c -o mark_rts.lo mark_rts.c libtool: compile: cc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -O2 -pipe -fno-strict-aliasing -fno-strict-aliasing -MT mark_rts.lo -MD -MP -MF .deps/mark_rts.Tpo -c mark_rts.c -fPIC -DPIC -o .libs/mark_rts.o mark_rts.c: In function 'GC_push_current_stack': mark_rts.c:652: error: 'BACKING_STORE_BASE' undeclared (first use in this function) mark_rts.c:652: error: (Each undeclared identifier is reported only once mark_rts.c:652: error: for each function it appears in.) *** Error code 1 Many thanks Anton