Description: Dyson is like Linux Build libraries like on Linux. Problems arised while building xaw3dg: sonames was *.so.6.1 instead of *.so.6 sv4Lib.rules is included from svr4.cf, which is included from sun.cf Index: xutils-dev/xorg-cf-files/sv4Lib.rules =================================================================== --- xutils-dev.orig/xorg-cf-files/sv4Lib.rules 2013-04-06 22:09:58.745141863 +0000 +++ xutils-dev/xorg-cf-files/sv4Lib.rules 2013-04-06 22:25:41.696266884 +0000 @@ -1,128 +1,138 @@ -XCOMM $Xorg: sv4Lib.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $ - /* - * SVR4 shared library rules + * Dyson shared library rules (GNU toolchain), based on lnxLib.rules */ -XCOMM $XFree86: xc/config/cf/sv4Lib.rules,v 3.8tsi Exp $ - #ifndef HasSharedLibraries # define HasSharedLibraries YES #endif -#ifndef SharedDataSeparation -# define SharedDataSeparation NO -#endif -#ifndef HasGcc2ForCplusplus -# define HasGcc2ForCplusplus HasGcc2 -#endif -#ifndef SharedCodeDef -# define SharedCodeDef /**/ +#ifndef ForceNormalLib +# define ForceNormalLib YES #endif -#ifndef SharedLibraryDef -# define SharedLibraryDef /**/ -#endif -#ifndef ShLibIncludeFile -# define ShLibIncludeFile -#endif -#ifndef SharedLibraryLdCmd -# define SharedLibraryLdCmd $(LD) + +#ifndef UseRpath +#define UseRpath NO #endif -#ifndef SharedLibraryLoadFlags -# define SharedLibraryLoadFlags -G -z text + +#ifndef SharedOldX +# define SharedOldX NO #endif + +#ifndef SpecialMalloc +# define SpecialMalloc NO +# endif + +#define BaseShLibReqs -lc + +# ifndef SharedDataSeparation +# define SharedDataSeparation NO +# endif +# ifndef SharedCodeDef +# define SharedCodeDef /**/ +# endif +# ifndef SharedLibraryDef +# define SharedLibraryDef /**/ +# endif +# ifndef ShLibIncludeFile +# define ShLibIncludeFile +# endif #ifndef RpathLoadFlags +#if UseRpath +#define RpathLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) +#else #define RpathLoadFlags /**/ #endif +#endif #ifndef LibraryRpathLoadFlags #define LibraryRpathLoadFlags RpathLoadFlags #endif -#ifndef HardCodeLibdirFlag -#define HardCodeLibdirFlag RpathLoadFlags -#endif -#ifndef PositionIndependentCFlags -# if HasGcc2 +# ifndef SharedLibraryLoadFlags +# define SharedLibraryLoadFlags -shared +# endif +# ifndef PositionIndependentCFlags # define PositionIndependentCFlags -fPIC -# else -# define PositionIndependentCFlags -K PIC # endif -#endif -#ifndef PositionIndependentCplusplusFlags -# if HasGcc2ForCplusplus +# ifndef PositionIndependentCplusplusFlags # define PositionIndependentCplusplusFlags -fPIC -# else -# define PositionIndependentCplusplusFlags -K PIC # endif -#endif -#ifndef UseExportLists -# define UseExportLists NO -#endif -#ifndef StripInstalledPrograms -# define StripInstalledPrograms NO -#endif +# ifndef ExtraLoadFlags +# if LinuxBinUtilsMajorVersion >= 26 +# ifdef UseInstalled +# if LinuxBinUtilsMajorVersion < 27 +# define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(USRLIBDIRPATH) +# endif +# else +# define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR) +# endif +# else +# define ExtraLoadFlags RpathLoadFlags +# endif +# endif +# ifndef HardCodeLibdirFlag +# define HardCodeLibdirFlag RpathLoadFlags +# endif +# if !defined(ShlibGlobalsFlags) +# define ShlibGlobalsFlags -Wl,-Bsymbolic +# endif /* * InstallSharedLibrary - generate rules to install the shared library. + * NOTE: file must be executable, hence "INSTBINFLAGS" */ -#ifndef InstallSharedLibrary -#if StripInstalledPrograms -# define InstallSharedLibrary(libname,rev,dest) @@\ +# ifndef InstallSharedLibrary +# define InstallSharedLibrary(libname,rev,dest) @@\ install:: Concat(lib,libname.so.rev) @@\ MakeDir($(DESTDIR)dest) @@\ - $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\ - mcs -d Concat($(DESTDIR)dest/lib,libname.so.rev) @@\ - @if $(SOSYMLINK); then (set -x; \ @@\ + $(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\ + @T=`echo Concat($(DESTDIR)dest/lib,libname.so.rev) | sed 's/\(lib[^\.]*\.so\.[0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`;\ + set -x; $(RM) $$T && $(LN) Concat(lib,libname.so.rev) $$T @@\ + @if $(SOSYMLINK); then (set -x; \ $(RM) Concat($(DESTDIR)dest/lib,libname.so); \ @@\ - cd $(DESTDIR)dest; \ @@\ - $(LN) Concat(lib,libname.so.rev) Concat(lib,libname.so)); fi -#else -# define InstallSharedLibrary(libname,rev,dest) @@\ -install:: Concat(lib,libname.so.rev) @@\ - MakeDir($(DESTDIR)dest) @@\ - $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\ - @if $(SOSYMLINK); then (set -x; \ @@\ - $(RM) Concat($(DESTDIR)dest/lib,libname.so); \ @@\ - cd $(DESTDIR)dest; \ @@\ - $(LN) Concat(lib,libname.so.rev) Concat(lib,libname.so)); fi -#endif + $(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so)); fi +# endif /* InstallSharedLibrary */ -#endif /* InstallSharedLibrary */ +# ifndef InstallSharedLibtoolLibrary + +# define SetRevisions(rev) V=`expr rev : '\([^:]*\)'`; \ @@\ + R=`expr rev : '.*:\([^:]*\):'`; \ @@\ + A=`expr rev : '.*:\([^:]*\)'`; \ @@\ + MAJ=`expr $$V - $$A`; \ @@\ + MIN=$$A.$$R + +# define InstallSharedLibtoolLibrary(libname,rev,dest) @@\ +install:: Concat(lib,libname.so) @@\ + MakeDir($(DESTDIR)dest) @@\ + @set +e; SetRevisions(rev); \ @@\ + set -xe; \ @@\ + $(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so.$$MAJ.$$MIN) $(DESTDIR)dest; \ @@\ + $(RM) Concat($(DESTDIR)dest/lib,libname.so.$$MAJ); \ @@\ + $(LN) Concat(lib,libname.so.$$MAJ.$$MIN) Concat($(DESTDIR)dest/lib,libname.so.$$MAJ); \ @@\ + $(RM) Concat($(DESTDIR)dest/lib,libname.so); \ @@\ + $(LN) Concat(lib,libname.so.$$MAJ.$$MIN) Concat($(DESTDIR)dest/lib,libname.so) +# endif /* InstallSharedLibrary */ /* * InstallSharedLibraryData - generate rules to install the shared library data */ -#ifndef InstallSharedLibraryData -# define InstallSharedLibraryData(libname,rev,dest) -#endif /* InstallSharedLibraryData */ - -#ifndef LinkWithExports -# if UseExportLists -# define LinkWithExports(libname,rev,solist,down,up) \ - (cd down; $(CCENVSETUP) SharedLibraryLdCmd -o up/$@~ $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS)) @@\ - if [ -f Concat(lib,libname.elist) ]; then \ @@\ - $(RM) down/$@.exports $@.list; \ @@\ - $(CPP) $(ALLINCLUDES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(DEFINES) Concat(lib,libname.elist) | CppSedMagic >$@.list; \ @@\ - $(EXPORTLISTGEN) $@~ $@.list > down/$@.exports; \ @@\ - (cd down; $(CCENVSETUP) SharedLibraryLdCmd -o up/$@~ $(SHLIBLDFLAGS) -h $@ ShlibExportListOpt($@.exports) solist $(REQUIREDLIBS)); \ @@\ - $(RM) down/$@.exports $@.list; \ @@\ - fi; -# else -# define LinkWithExports(libname,rev,solist,down,up) \ - (cd down; $(CCENVSETUP) SharedLibraryLdCmd -o up/$@~ $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS)) -# endif -#endif +# ifndef InstallSharedLibraryData +# define InstallSharedLibraryData(libname,rev,dest) +# endif /* InstallSharedLibraryData */ + /* * SharedLibraryTarget - generate rules to create a shared library; * build it into a different name so that we do not hose people by having * the library gone for long periods. */ -#ifndef SharedLibraryTarget -# define SharedLibraryTarget(libname,rev,solist,down,up) @@\ +# ifndef SharedLibraryTarget +# define SharedLibraryTarget(libname,rev,solist,down,up) @@\ AllTarget(Concat(lib,libname.so.rev)) @@\ @@\ Concat(lib,libname.so.rev): solist $(EXTRALIBRARYDEPS) @@\ $(RM) $@~ @@\ - LinkWithExports(libname,rev,solist,down,up) @@\ + @SONAME=`echo $@ | sed 's/\(lib[^\.]*\.so\.[0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`; (set -x; \ @@\ + cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs) || exit 1; \ @@\ + (set -x; $(RM) $$SONAME; $(LN) $@ $$SONAME); \ @@\ + LinkBuildSonameLibrary($$SONAME) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @if $(SOSYMLINK); then (set -x; \ @@\ @@ -132,20 +142,57 @@ LinkBuildLibraryMaybe(Concat(lib,libname.so),$(SOSYMLINK)) @@\ @@\ clean:: @@\ + @MAJREV=`echo rev | sed 's/\([0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`; \ @@\ + set -x; $(RM) Concat(lib,libname.so.$$MAJREV) @@\ $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so) -#endif /* SharedLibraryTarget */ +# endif /* SharedLibraryTarget */ + + +# ifndef SharedLibtoolLibraryTarget +# define SharedLibtoolLibraryTarget(libname,rev,solist,down,up) @@\ +AllTarget(Concat(lib,libname.so)) @@\ + @@\ +Concat(lib,libname.so): solist $(EXTRALIBRARYDEPS) @@\ + $(RM) $@~ @@\ + @set +e; SetRevisions(rev); set -e; \ @@\ + SONAME=$@.$$MAJ; \ @@\ + (set -x; \ @@\ + $(RM) $@.$$MAJ.$$MIN~; \ @@\ + cd down; $(CC) -o up/$@.$$MAJ.$$MIN~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs) || exit 1; \ @@\ + (set -x; \ @@\ + $(RM) $$SONAME; $(LN) $@.$$MAJ.$$MIN $$SONAME); \ @@\ + LinkBuildSonameLibrary($$SONAME); \ @@\ + (set -x; \ @@\ + $(RM) $@.$$MAJ.$$MIN; \ @@\ + $(MV) $@.$$MAJ.$$MIN~ $@.$$MAJ.$$MIN; \ @@\ + $(RM) $@; \ @@\ + $(LN) $@.$$MAJ.$$MIN $@); \ @@\ + LinkBuildLibraryInline($@.$$MAJ.$$MIN); \ @@\ + LinkBuildLibraryInline($@) @@\ + @@\ +clean:: @@\ + @set +e; SetRevisions(rev); \ @@\ + set -xe; \ @@\ + $(RM) Concat(lib,libname.so.$$MAJ); \ @@\ + $(RM) Concat(lib,libname.so.$$MAJ.$$MIN) @@\ + $(RM) Concat(lib,libname.so) + +# endif /* SharedLibtoolLibraryTarget */ /* * SharedDepLibraryTarget - generate rules to create a shared library. */ -#ifndef SharedDepLibraryTarget -# define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ +# ifndef SharedDepLibraryTarget +# define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ AllTarget(Concat(lib,libname.so.rev)) @@\ @@\ Concat(lib,libname.so.rev): deplist $(EXTRALIBRARYDEPS) @@\ $(RM) $@~ @@\ - LinkWithExports(libname,rev,solist,down,up) @@\ + @SONAME=`echo $@ | sed 's/\(lib[^\.]*\.so\.[0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`; set -x; \ @@\ + (cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\ + $(RM) $$SONAME; $(LN) $@ $$SONAME; \ @@\ + LinkBuildSonameLibrary($$SONAME) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @if $(SOSYMLINK); then (set -x; \ @@\ @@ -155,6 +202,8 @@ LinkBuildLibraryMaybe(Concat(lib,libname.so),$(SOSYMLINK)) @@\ @@\ clean:: @@\ + @MAJREV=`echo rev | sed 's/\([0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`; \ @@\ + set -x; $(RM) Concat(lib,libname.so.$$MAJREV) @@\ $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so) #endif /* SharedDepLibraryTarget */ @@ -168,7 +217,10 @@ @@\ Concat(lib,libname.so.rev): deplist $(EXTRALIBRARYDEPS) @@\ $(RM) $@~ @@\ - (cd down; $(CXX) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\ + @SONAME=`echo $@ | sed 's/\(lib[^\.]*\.so\.[0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`; 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; \ @@\ @@ -178,25 +230,43 @@ LinkBuildLibraryMaybe(Concat(lib,libname.so),$(SOSYMLINK)) @@\ @@\ clean:: @@\ - $(RM) Concat(lib,libname.so.rev) -#endif /* SharedDepCplusplusLibraryTarget */ + @MAJREV=`echo rev | sed 's/\([0-9]*\)\(\.[0-9]*\)\{1,2\}/\1/'`; \ @@\ + 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) @@\ +# ifndef SharedDepModuleTarget +# define SharedDepModuleTarget(name,deps,solist) @@\ AllTarget(name) @@\ @@\ name: deps @@\ $(RM) $@~ @@\ - SharedLibraryLdCmd -o $@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) @@\ + $(CC) -o $@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) BaseShLibReqs @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) name -#endif /* SharedDepModuleTarget */ +# 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; @@ -204,3 +274,4 @@ #ifndef SharedLibraryDataTarget # define SharedLibraryDataTarget(libname,rev,salist) #endif /* SharedLibraryTarget */ +