diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-04-06 22:22:08 +0000 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-04-06 22:22:08 +0000 |
commit | 32c3e4729d0f68193bb1c6922fd6049296fea8b9 (patch) | |
tree | 60e078a1dcf6cf9eaf2dc13c68a921d7d5df802d | |
parent | 002d3bb944d51124ebf6fdb723e64d846e845876 (diff) | |
download | xutils-dev-32c3e4729d0f68193bb1c6922fd6049296fea8b9.tar.gz |
Patch sv4Lib.rules to build libraries in a way of Linux
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/patches/dyson-sv4Lib.rules.patch | 370 | ||||
-rw-r--r-- | debian/patches/series | 1 |
3 files changed, 377 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 2318eea..f59663b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xutils-dev (1:7.7~2+dyson3) unstable; urgency=low + + * Patch sv4Lib.rules to build libraries in a way of Linux + + -- Igor Pashev <pashev.igor@gmail.com> Sat, 06 Apr 2013 22:09:37 +0000 + xutils-dev (1:7.7~2+dyson2) unstable; urgency=low * Do not use Sun linker feature (mapfiles, lazyload). diff --git a/debian/patches/dyson-sv4Lib.rules.patch b/debian/patches/dyson-sv4Lib.rules.patch new file mode 100644 index 0000000..170e5e1 --- /dev/null +++ b/debian/patches/dyson-sv4Lib.rules.patch @@ -0,0 +1,370 @@ +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 13:20:35.051289308 +0000 ++++ xutils-dev/xorg-cf-files/sv4Lib.rules 2013-04-06 21:56:23.358325526 +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 NO + #endif +-#ifndef SharedLibraryDef +-# define SharedLibraryDef /**/ +-#endif +-#ifndef ShLibIncludeFile +-# define ShLibIncludeFile <sv4Lib.tmpl> +-#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 <lnxLib.tmpl> ++# 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 */ ++ diff --git a/debian/patches/series b/debian/patches/series index 6beb24b..ed10075 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ 06_font_path.diff 07_gnu_manpath.diff dyson-sun.cf.patch +dyson-sv4Lib.rules.patch |