I'm pretty sure #1 is not protobuf's fault.  I've never heard of libgcc_s
which means it's probably something GCC links against implicitly.  And
anyway, if libwhatever.so.1 exists, there should always be a libwhatever.so
symlink to it... right?

Monty, can you comment on #2?

On Fri, Aug 21, 2009 at 7:44 PM, Oliver Jowett <oliver.jow...@gmail.com>wrote:

>
> I had some trouble getting 2.2.0 built in 64-bit mode on a Solaris 10
> amd64 machine, and searching didn't turn much up. Here are my notes in
> case someone else ends up with the same problems.
>
> Environment:
>
> $ uname -a
> SunOS trouble 5.10 Generic_139556-08 i86pc i386 i86pc
>
> [prophetic machine name!]
>
> $ g++ -v
> Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/specs
> Configured with: /builds/sfw10-gate/usr/src/cmd/gcc/gcc-3.4.3/configure
> --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as
> --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++
> --enable-shared
> Thread model: posix
> gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)
>
>
> Problems:
>
> (1) Linking fails to find -lgcc_s.
>
> I had to create a symlink in /usr/sfw/lib/amd64 from libgcc_s.so to
> libgcc_s.so.1 before it'd find it. I'm not sure if this is a problem on
> the protobuf side or whether the GCC install on this machine is slightly
> broken.
>
> (2) Linking fails because libtool is pulling in the 32-bit versions of
> various runtime helper objects (crti.o, etc), not the 64-bit ones.
>
> I tracked this down to:
> - predeps_objects_CXX is being set incorrectly in configure because ..
> - output_verbose_link_command is doing a 32-bit link because ..
> - it uses CFLAGS and CFLAGS does not contain "-m64" because ..
> - the handling of --{en,dis}sable-64bit-solaris only puts "-m64" in
> CXXFLAGS, and not also in CFLAGS
>
> Workaround: ./configure CFLAGS=-m64
>
> ...
>
> I don't know about (1), but (2) certainly looks like it can be fixed on
> protobuf side.
>
> Also, I noticed that the Solaris 64-bit specific logic would modify
> libdir even if it didn't modify CXXFLAGS because it was passed in on the
> command line.
>
> This can lead to confusing things like configuring with
> CXXFLAGS="something without -m64" and ending up with a library installed
> in a directory that doesn't match the compiled target at all (e.g.
> 32-bit library in $prefix/lib/amd64).
>
> -O
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to