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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.