This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: what exactly is a "patch," anyway?


Michael N. Moran wrote:
# touch a.c
# arm-linux-gcc -malignment-traps -mapcs-32 -c a.c
# armv5b-softfloat-linux-gcc -malignment-traps -mapcs-32 -c a.c
cc1: error: invalid option 'alignment-traps'
cc1: error: invalid option 'apcs-32'

The (abreviated) versions

# arm-linux-gcc --version
arm-linux-gcc (GCC) 3.2.1

# armv5b-softfloat-linux-gcc --version
armv5b-softfloat-linux-gcc (GCC) 4.0.1

The options chosen to compile the empty "a.c" file
are those chosen by the "linux-2.6.x/arch/arm/Makefile" .

Googling for the error message brings up three hits. One of them is http://marc.theaimsgroup.com/?l=linux-arm-kernel&m=110621577317150&w=2 which says

Both -malignment-traps and -mapcs-32 options are no longer needed in
gcc-3.4.2 (and hence removed). You can either use a newer kernel
... which fixes this or modify the arch/arm/Makefile file.

It looks like 2.6.11 checks for the option being legal: http://lxr.linux.no/source/arch/arm/Makefile#L61 says

CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)

cc-option is defined in Makefile as

cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
             > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)

so it looks like they use -mapcs-32 if $CC doesn't barf on it,
else they use -mabi=apcs-gnu.

So which version of the kernel were you using?  Something earlier than 2.6.11?
- Dan

p.s. if an explicit version check is needed, maybe something like
http://patchwork.ozlabs.org/linuxppc64/patch?id=787
would do.  (I just found that by googling for call cc-option.)

--
Trying to get a job as a c++ developer?  See http://kegel.com/academy/getting-hired.html

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]