Bug#295472: xlibmesa-glu: Does not link against libstdc++ on hurd-i386
Package: xlibmesa-glu
Version: 4.3.0.dfsg.1-8
Severity: important
Tags: patch
Hi,
the current xlibmesa-glu hurd-i386 package on ftp.debian.org (and the
unofficial kfreebsd-gnu ones) do not link against libstdc++. This
results in failures when linking C programs against libGLU, see #269294
for an example.
The reason is that xc/config/cf/gnuLib.* has not been updated to
reflect recent (or not so recent) build environment changes for linux.
The attached patch fixes this by resyncing lnxLib.* and gnuLib.*. It
additionally fixes build issues when building X with pthreads (though
this is not the default case yet on hurd-i386).
cheers,
Michael
diff -Naur xc.orig/config/cf/gnuLib.rules xc/config/cf/gnuLib.rules
--- xc/config/cf/gnuLib.rules~ 2002-01-16 01:39:59.000000000 +0100
+++ xc/config/cf/gnuLib.rules 2005-02-16 01:10:34.000000000 +0100
@@ -158,6 +158,45 @@
#endif /* SharedDepLibraryTarget */
+/*
+ * SharedDepCplusplusLibraryTarget - generate rules to create a shared library.
+ */
+#ifndef SharedDepCplusplusLibraryTarget
+#ifdef UseInstalled
+#ifndef LinkBuildSonameLibrary
+#define LinkBuildSonameLibrary(lib) true
+#endif
+#else
+#ifndef LinkBuildSonameLibrary
+#define LinkBuildSonameLibrary(lib) (RemoveFile($(BUILDLIBDIR)/lib); \
+ cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .)
+#endif
+#endif
+
+#define SharedDepCplusplusLibraryTarget(libname,rev,deplist,solist,down,up) @@\
+AllTarget(Concat(lib,libname.so.rev)) @@\
+ @@\
+Concat(lib,libname.so.rev): deplist $(EXTRALIBRARYDEPS) @@\
+ $(RM) $@~ @@\
+ @SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; set -x; \ @@\
+ (cd down; $(CXX) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\
+ $(RM) $$SONAME; $(LN) $@ $$SONAME; \ @@\
+ LinkBuildSonameLibrary($$SONAME) @@\
+ $(RM) $@ @@\
+ $(MV) $@~ $@ @@\
+ @if $(SOSYMLINK); then (set -x; \ @@\
+ $(RM) Concat(lib,libname.so); \ @@\
+ $(LN) $@ Concat(lib,libname.so)); fi @@\
+ LinkBuildLibrary($@) @@\
+ LinkBuildLibraryMaybe(Concat(lib,libname.so),$(SOSYMLINK)) @@\
+ @@\
+clean:: @@\
+ @MAJREV=`expr rev : '\([^.]*\)'`; \ @@\
+ set -x; $(RM) Concat(lib,libname.so.$$MAJREV) @@\
+ $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so)
+
+#endif /* SharedDepCplusplusLibraryTarget */
+
#ifndef SharedDepModuleTarget
#define SharedDepModuleTarget(name,deps,solist) @@\
AllTarget(name) @@\
@@ -173,6 +212,23 @@
#endif /* SharedDepModuleTarget */
+# ifndef SharedDriModuleTarget
+# define SharedDriModuleTarget(name,deps,solist) @@\
+AllTarget(name) @@\
+ @@\
+name: deps @@\
+ $(RM) $@~ $@.map @@\
+ @(echo 'DRI_MODULE { global: __dri*; local: *; };' > $@.map) @@\
+ $(CC) -o $@~ -Wl,--version-script=$@.map $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) BaseShLibReqs @@\
+ $(RM) $@ $@.map @@\
+ $(MV) $@~ $@ @@\
+ @@\
+clean:: @@\
+ $(RM) name @@\
+ $(RM) name.map
+
+# endif /* SharedDriModuleTarget */
+
/*
* SharedLibraryDataTarget - generate rules to create shlib data file;
*/
diff -Naur xc.orig/config/cf/gnuLib.tmpl xc/config/cf/gnuLib.tmpl
--- xc/config/cf/gnuLib.tmpl~ 2000-11-14 19:20:31.000000000 +0100
+++ xc/config/cf/gnuLib.tmpl 2005-02-16 01:10:34.000000000 +0100
@@ -16,15 +16,55 @@
#define CplusplusLibC
-#define SharedX11Reqs
-#define SharedOldXReqs $(LDPRELIB) $(XLIBONLY)
-#define SharedXtReqs $(LDPRELIB) $(XLIBONLY) $(SMLIB) $(ICELIB)
-#define SharedXaw6Reqs $(LDPRELIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
-#define SharedXawReqs $(LDPRELIB) $(XMULIB) $(XTOOLLIB) $(XPMLIB) $(XLIB)
-#define SharedXmuReqs $(LDPRELIB) $(XTOOLLIB) $(XLIB)
-#define SharedXextReqs $(LDPRELIB) $(XLIBONLY)
-#define SharedXiReqs $(LDPRELIB) $(XLIB)
-#define SharedPexReqs $(LDPRELIB) $(XLIBONLY) MathLibrary
-#define SharedXtstReqs $(LDPRELIB) $(XLIB)
-#define SharedXieReqs $(LDPRELIB) $(XLIBONLY)
-#define SharedSMReqs $(LDPRELIB) $(ICELIB)
+#if ThreadedX
+# ifndef SharedThreadReqs
+# define SharedThreadReqs -lpthread
+# endif
+#else
+# ifndef SharedThreadReqs
+# define SharedThreadReqs
+# endif
+#endif
+
+#define SharedX11Reqs SharedThreadReqs
+#define SharedOldXReqs $(LDPRELIB) $(XLIBONLY)
+#define SharedXtReqs $(LDPRELIB) $(XLIBONLY) $(SMLIB) $(ICELIB) SharedThreadReqs
+#define SharedXaw6Reqs $(LDPRELIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
+#define SharedXawReqs $(LDPRELIB) $(XMULIB) $(XTOOLLIB) $(XPMLIB) $(XLIB)
+#define SharedXmuReqs $(LDPRELIB) $(XTOOLLIB) $(XLIB)
+#define SharedXextReqs $(LDPRELIB) $(XLIBONLY)
+#define SharedXiReqs $(LDPRELIB) $(XLIB)
+#define SharedXrenderReqs $(LDPRELIB) $(EXTENSIONLIB) $(XLIB)
+#define SharedPexReqs $(LDPRELIB) $(XLIBONLY) MathLibrary
+#define SharedXtstReqs $(LDPRELIB) $(XLIB)
+#define SharedXieReqs $(LDPRELIB) $(XLIBONLY)
+#define SharedSMReqs $(LDPRELIB) $(ICELIB)
+#define SharedGLUReqs $(LDPRELIB) $(GLXLIB)
+#define SharedXmuuReqs $(LDPRELIB) $(XONLYLIB)
+#define SharedXpReqs $(LDPRELIB) $(XLIB)
+#define SharedXpmReqs $(LDPRELIB) $(XONLYLIB)
+#define SharedXrandrReqs $(LDPRELIB) $(XRENDERLIB) $(XLIB)
+#define SharedDPSReqs $(LDPRELIB) $(XTOOLLIB) $(XLIB)
+#define SharedDPSTKReqs $(LDPRELIB) $(DPSLIB) $(XLIB) MathLibrary
+#define SharedXvReqs $(LDPRELIB) $(XLIB)
+
+#if GlxUseBuiltInDRIDriver
+#define ExtraSharedGLReqs /**/
+#else
+#define ExtraSharedGLReqs -ldl
+#endif
+#define SharedGLReqs $(LDPRELIB) $(XLIB) ExtraSharedGLReqs
+
+#ifndef SharedXReqs
+# define SharedXReqs $(XTOOLLIB) $(XPLIB) $(XLIB) $(LDPOSTLIBS) SharedThreadReqs
+#endif
+
+#ifndef SharedXmReqs
+# define SharedXmReqs $(LDPRELIBS) SharedXReqs -lc
+#endif
+
+#ifndef SharedTtReqs
+# define SharedTtReqs $(LDPRELIBS) SharedXReqs $(CXXLIB) SharedThreadReqs
+#endif
+
+#define NoMessageCatalog
Reply to: