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

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: