Re: is it a real 9.0?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2003-04-08 at 21:03, Havoc Pennington wrote:
> Well, all I'm saying is that it's known and advertised by the
> maintainers of glibc that if you statically link or use symbols
> starting with __ that your stuff will break - so if you don't want to
> stuff to break, you might want to avoid doing those things. ;-)

I tend to stray towards the ANSI standard consistently so I don't do
things like that, however the libraries I use aren't always as nice :(

> Incidentally, if your app is LSB-compliant it will automatically
> follow these rules.

LSB-compliancy really doesn't *seem* to help game binaries as they
typically use several additional libraries, ones that in my case are
rather obscure and somewhat difficult to compile properly :|

> > How does a commercial or non-commercial (in my case) developer properly
> > release binaries for other platforms and avoid all of these currently
> > very ugly issues? The last thing users really want to deal with is
> > library dependencies, C++ ABI changes, glibc ABI changes, etc.
> 
> For glibc, not knowing specifically what breakage you are seeing, the
> way you need to deal with the change is to only use what you're
> supposed to. Don't statically link to glibc, and don't use internal
> symbols starting with __. If you're using the well-specified official
> ABI of glibc, and your app still breaks, then that's considered a bug.

./ags: /lib/libc.so.6: version `GLIBC_2.3' not found (required by ./ags)
./ags: /lib/libc.so.6: version `GCC_3.0' not found (required by ./ags)

For example the above came from one of my users, I'm guessing the above
means I need to somehow link against the compat-libstdc++ and use gcc296
to compile the binaries instead of gcc3.2.2 included with RedHat 9.

I guess the main reason I got set on doing static linking is because
Loki did the same thing when they distributed their binaries. Which I'm
grateful for, because I cannot run their older dynamic binaries on my
box even with the compatibility libraries installed. Weird stuff
happens.

> If you're heavily relying on old thread behavior, at least for now you
> can also set LD_ASSUME_KERNEL=2.2.5 as a workaround.

Thankfully I don't do any thread stuff directly, and Allegro, the main
library that's used seems to be quite clean in it's thread
implementation so far.

> For C++, the matter is more complicated; the gcc project has not
> wanted to commit to a stable ABI until they had a test suite
> validating that the ABI was conformant to standard ABI specs.  What
> I've heard is that they have that now and once we upgrade to latest
> gcc the ABI will not change again.

Is this true of RedHat 9's version of gcc, or of gcc 3.3 when it becomes
the version in RedHat?

> Re: library dependencies, if you follow the LSB rules this will also
> be a non-issue. Though the LSB doesn't cover C++ yet due to the
> historical lack of ABI commitment from the gcc project, that problem
> should be solved pretty quickly now that there is commitment.
> 
> So for now users do need to install a compat-libstdc++ in order to run
> C++ binaries from 7.3 on 8 or 9. However if they install
> compat-libstdc++ then all 7.3 C++ binaries should run fine.

But what about users of other distributions, such as Mandrake, Debian,
etc. honestly I'd love to say I don't care about them because I much
prefer RedHat, but that wouldn't make me very popular ;) Do they have
equivalent versions of compatability libraries for their distributions?
How does one go about specifying the compatability libstdc++ instead of
the normal one when using gcc296 or is that somehow automatic? Should I
static link against just libstdc++ and the obscure libraries I use and
dynamically link libc, libdl, libm, libpthread, etc.?

Anyway, the input / help is greatly appreciated I've been battling with
this issue for several weeks now, and very few people are informed
enough to give me a good answer.

-- 
Shawn <drevil@xxxxxxxxxxxx>
http://www.warpcore.org/





[Index of Archives]     [Fedora Users]     [Centos Users]     [Kernel Development]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat Phoebe Beta]     [Yosemite Forum]     [Fedora Discussion]     [Gimp]     [Stuff]     [Yosemite News]

  Powered by Linux