Re: [Gc] FreeBSD/ia64 build error: ./include/private/gcconfig.h:2436:3: error: #error --> undefined ALIGNMENT

Vitaly Magerya <[email protected]>
Newsgroups gmane.comp.programming.garbage-collection.boehmgc
Message-ID <[email protected]>
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
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.