ld build problem

Anthony Green green@cygnus.com
Fri Feb 4 09:29:00 GMT 2000

One IA-32 Red Hat Linux 6.1...

gcc -DHAVE_CONFIG_H -I. -I../../binutils/ld -I. -D_GNU_SOURCE -I. -I../../binutils/ld -I../bfd -I../../binutils/ld/../bfd -I../../binutils/ld/../include -I../../binutils/ld/../intl -I../intl  -g -O2 -W -Wall -DLOCALEDIR="\"/hoser/tuque/gcj-test/2000-02-03-15.14.30/install/share/locale\""    -g -O2 -W -Wall -c ../../binutils/ld/ldlang.c
../../binutils/ld/ldlang.c:2830: macro `ALIGN_N' used with too many (3) args

ldlang.c says:

            /* put the section within the requested block size, or align at
               the block boundary */
	    after = ALIGN_N (os->bfd_section->vma,
			     os->bfd_section->_raw_size / opb,
			     /* The coercion here is important, see ld.h.  */
			     (bfd_vma) os->block_value);

But ld.h says:

/* ALIGN macro changed to ALIGN_N to avoid	*/
/* conflict in /usr/include/machine/machparam.h */
/* WARNING: If THIS is a 64 bit address and BOUNDARY is a 32 bit int,
   you must coerce boundary to the same type as THIS.
   ??? Is there a portable way to avoid this.  */
#define ALIGN_N(this, boundary) \
  ((( (this) + ((boundary) -1)) & (~((boundary)-1))))


Anthony Green                                                        Red Hat
                                                       Sunnyvale, California

More information about the Binutils mailing list