This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
Re: Possible problem debug sections default addresses on powerpc-linux-gnu
- To: alan at linuxcare dot com dot au
- Subject: Re: Possible problem debug sections default addresses on powerpc-linux-gnu
- From: Ian Lance Taylor <ian at zembu dot com>
- Date: 13 Apr 2000 09:13:10 -0700
- CC: Franz dot Sirl-kernel at lauterbach dot com, donnte at microsoft dot com, binutils at sourceware dot cygnus dot com
- References: <Pine.LNX.4.21.0004132218150.26457-100000@front.linuxcare.com.au>
Date: Thu, 13 Apr 2000 22:43:13 +1000 (EST)
From: Alan Modra <alan@linuxcare.com.au>
Try this patch, which implements Ian's suggestion about handling
SEC_DEBUGGING & ~ (SEC_LOAD | SEC_ALLOC) sections. Ian, why not do this
for all ~ (SEC_LOAD | SEC_ALLOC) sections?
You're right, we probably should do it that way. We don't need to
treat SEC_DEBUGGING specially.
ld/ChangeLog
* emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Process
~SEC_ALLOC sections too. Init start address of debug sections.
* emultempl/armelf.em (gld${EMULATION_NAME}_place_section): Ditto.
* emultempl/pe.em (gld${EMULATION_NAME}_place_section): Ditto.
Also set all relocateable section start addresses.
This patch is OK with me.
- if (place != NULL && place->os->bfd_section != NULL)
+ if (place && place->os->bfd_section)
I personally don't like this sort of shorthand. I think it is correct
to test boolean variables as `if (x)'. A pointer is not a boolean
variable. I think it is clearer to write an explicit test against
NULL, since that is after all what is being tested. You are not
testing whether place is true; you are testing whether it does not
have a particular special value. C permits a shorthand version of
that test, but C permits many shorthands which I think it is clearer
to avoid.
I don't feel strongly enough about it to insist on this sort of test
in new code. But I'd prefer it if you didn't change it in existing
code. Thanks.
Ian