4.0.0->4.0.1 regression: Can't use 64-bit shared libs on powerpc-apple-darwin8.1.0

Bradley Lucier lucier@math.purdue.edu
Thu Jun 16 01:37:00 GMT 2005


On Jun 15, 2005, at 7:12 PM, Mike Stump wrote:

> On Wednesday, June 15, 2005, at 11:19  AM, Bradley Lucier wrote:
>> I cannot build and use (link, etc.) 64-bit shared libraries on 
>> powerpc-apple-darwin8.1.0 with gcc version 4.0.1 20050615 > 
>> (prerelease).
>
> If you remove the # that comment out the -m64 multilibs, does it then 
> work perfectly?  If so, then, that is the solution to make it work, 
> you just won't be able to do java (not that you care).

Thank you for your reply.  I plan to test mainline after removing the 
#'s.

> Also, I do wonder if there was a specs files that is polluting your 
> gcc-4.0.0 build, to check that, if you want, you can install in a new 
> prefix directory, and then see if it remains working.

Yes, it does.  I did that this afternoon.  There is a rather long 
exchange between me and Andrew in the bug report.  I don't know why it 
works, but it does.  Perhaps you might know how one can have a shared 
library for which otool64 doesn't report a link to libgcc_s.

> Anyway, while this is a regression for you, we meant for gcc-4.0.0 to 
> not work for -m64, so I would not expect that it'll work for 4.0.1.   
> :-(.

I understand now that -m64 was not meant to work with Darwin.  I didn't 
realize this before, tried it, and was happy when it worked.

I've found the discussion about 64-bit java not working, beginning at

http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02396.html

The reasons given for disabling ppc64 multilib instead of java on 
darwin were

> - it involves changing configury that affects every darwin target, not
>   just darwin8
> - I think that people using FSF GCC are more likely to want to use gcj
>   than 64-bit, since they can use Apple's compiler for 64-bit but not
>   for gcj
> - java worked for 3.4, but ppc64 didn't

I think the second justification was a mistake.  In my opinion, the FSF 
shouldn't be asking people to rely on a company's compiler for certain 
features (64-bit support).  And Apple's 64-bit support in both Xcode 
2.0 and Xcode 2.1 has been broken for me.  I wasn't terribly worried 
since FSF gcc-4.0.0 seemed to work.

It's not clear to me that the third reason was persuasive, either.  
Fortran worked on 3.4, but not on 4.0.0.  It's a matter of what one 
decides one has to break.

Would it be possible to disable multilib by default on Darwin 8, but 
leave it as a configure option? Then one could

./configure --prefix=/pkgs/gcc-4.0.0
make bootstrap
make install

to build a complete 32-bit compiler suite and

./configure --enable-multilib --enable-languages=c,c++,objc,objc++,f95

to build 64-bit versions of languages except java and ada.

It would be good if 64-bit applications got tested in the FSF gcc tree 
for darwin, too.

Brad



More information about the Gcc mailing list