fix versioning of libgcc on darwin

Geoffrey Keating gkeating@apple.com
Thu Jun 16 22:02:00 GMT 2005


I never noticed this, because I always had a libgcc in /usr/lib, but
I don't think the install scripts for libgcc on Darwin were actually
working right.  They were previously creating

libgcc_s.1.0.dylib  [with install name of $prefix/lib/libgcc_s.1.dylib]
libgcc_s.dylib -> libgcc_s.1.dylib

but never actually creating the 'libgcc_s.1.dylib' link.  Apple didn't
notice it because we had some horrible shell-script stuff which remade
the links (in "build_gcc").

So, a change!  They will now just create

libgcc_s.1.dylib  [with install name of $prefix/lib/libgcc_s.1.dylib]
libgcc_s.dylib -> libgcc_s.1.dylib

which should work much better :-).

Bootstrapped & tested on powerpc-darwin8, plus 'make install', plus
building 'hello world' and checking that the right libgcc dylib got
used, both with 'gcc/xgcc -Bgcc/' and '$DESTDIR/usr/bin/gcc'.

-- 
- Geoffrey Keating <geoffk@apple.com>

===File ~/patches/gcc-darwin-libgccinstall.patch============
2005-06-16  Geoffrey Keating  <geoffk@apple.com>

	* config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
	SHLIB_MINOR.
	(SHLIB_REVISION): Delete.
	(SHLIB_VERSTRING): Update to compensate.
	(SHLIB_SONAME): Just use one '.' in the name.

Index: config/t-slibgcc-darwin
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/t-slibgcc-darwin,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 t-slibgcc-darwin
--- config/t-slibgcc-darwin	11 Apr 2005 23:30:44 -0000	1.10
+++ config/t-slibgcc-darwin	16 Jun 2005 22:00:28 -0000
@@ -1,11 +1,10 @@
 # Build a shared libgcc library with the darwin linker.
-SHLIB_MINOR = 1
-SHLIB_REVISION = 0
-SHLIB_VERSTRING = -compatibility_version $(SHLIB_MINOR) -current_version $(SHLIB_MINOR).$(SHLIB_REVISION)
+SHLIB_SOVERSION = 1
+SHLIB_VERSTRING = -compatibility_version $(SHLIB_SOVERSION) -current_version $(SHLIB_SOVERSION).0
 SHLIB_EXT = .dylib
 SHLIB_SUFFIX = `if test @multilib_dir@ != . ; then echo _@multilib_dir@ ; fi`
 SHLIB_SOLINK = @shlib_base_name@$(SHLIB_SUFFIX)$(SHLIB_EXT)
-SHLIB_SONAME = @shlib_base_name@$(SHLIB_SUFFIX).$(SHLIB_MINOR).$(SHLIB_REVISION)$(SHLIB_EXT)
+SHLIB_SONAME = @shlib_base_name@$(SHLIB_SUFFIX).$(SHLIB_SOVERSION)$(SHLIB_EXT)
 SHLIB_MAP = @shlib_map_file@
 SHLIB_OBJS = @shlib_objs@
 SHLIB_DIR = @multilib_dir@
============================================================



More information about the Gcc-patches mailing list