libunwind-devel
[Top][All Lists]
Advanced

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

[Libunwind-devel] [patch] Fix multilib packaging conflict


From: Jan Kratochvil
Subject: [Libunwind-devel] [patch] Fix multilib packaging conflict
Date: Sun, 12 Apr 2009 15:20:02 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

Hi,

as you know on arches like x86_64 one can have ix86 libraries installed to run
32-bit programs, even the -devel packages to develop 32-bit programs there.

For libunwind it currently causes a conflict as it creates an arch-dependent
symlink causing conflict between two such different arches:
        file 
/usr/src/debug/libunwind-20090412betagit2fce5410/include/libunwind.h conflicts 
between attempted installs of 
libunwind-debuginfo-0.99-0.9.20090412betagit2fce5410.fc10.x86_64 and 
libunwind-debuginfo-0.99-0.9.20090412betagit2fce5410.fc10.i586
        file 
/usr/src/debug/libunwind-20090412betagit2fce5410/include/tdep/libunwind_i.h 
conflicts between attempted installs of 
libunwind-debuginfo-0.99-0.9.20090412betagit2fce5410.fc10.x86_64 and 
libunwind-debuginfo-0.99-0.9.20090412betagit2fce5410.fc10.i586

I did not verify these symbols in the patch: __arm__ __hppa__ __mips__


Thanks,
Jan
diff --git a/Makefile.am b/Makefile.am
index 0c68c6d..61f4fb9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -59,6 +59,6 @@ EXTRA_DIST = include/dwarf.h include/dwarf_i.h 
include/dwarf-eh.h     \
        include/tdep-x86_64/jmpbuf.h include/tdep-x86_64/dwarf-config.h \
        include/libunwind-ppc64.h include/tdep-ppc64/dwarf-config.h     \
        include/tdep-ppc32/jmpbuf.h include/tdep-ppc32/libunwind_i.h    \
-       include/tdep-ppc64/jmpbuf.h include/tdep-ppc64/libunwind_i.h
-
-DISTCLEANFILES = include/libunwind.h include/tdep
+       include/tdep-ppc64/jmpbuf.h include/tdep-ppc64/libunwind_i.h    \
+       include/libunwind.h include/tdep/libunwind_i.h                  \
+       include/tdep/jmpbuf.h include/tdep/dwarf-config.h
diff --git a/configure.in b/configure.in
index 0bc2e61..162a448 100644
--- a/configure.in
+++ b/configure.in
@@ -109,8 +109,6 @@ fi
 if test x$target_arch != x$host_arch; then
   CPPFLAGS="${CPPFLAGS} -DUNW_REMOTE_ONLY"
 fi
-AC_CONFIG_LINKS(include/libunwind.h:include/libunwind-$target_arch.h
-               include/tdep:include/tdep-$target_arch)
 
 AC_ARG_ENABLE(debug,
 [  --enable-debug          turn on debug support (slows down execution)],
diff --git a/include/libunwind.h b/include/libunwind.h
new file mode 100644
index 0000000..c86216a
--- /dev/null
+++ b/include/libunwind.h
@@ -0,0 +1,22 @@
+/* Provide a real file - not a symlink - as it would cause multiarch conflicts
+   when multiple different arch releases are installed simultaneously.  */
+
+#if defined __arm__
+# include "libunwind-arm.h"
+#elif defined __hppa__
+# include "libunwind-hppa.h"
+#elif defined __ia64__
+# include "libunwind-ia64.h"
+#elif defined __mips__
+# include "libunwind-mips.h"
+#elif defined __powerpc__ && !defined __powerpc64__
+# include "libunwind-ppc32.h"
+#elif defined __powerpc64__
+# include "libunwind-ppc64.h"
+#elif defined __i386__
+# include "libunwind-x86.h"
+#elif defined __x86_64__
+# include "libunwind-x86_64.h"
+#else
+# error "Unsupported arch"
+#endif
diff --git a/include/tdep/dwarf-config.h b/include/tdep/dwarf-config.h
new file mode 100644
index 0000000..ab36637
--- /dev/null
+++ b/include/tdep/dwarf-config.h
@@ -0,0 +1,22 @@
+/* Provide a real file - not a symlink - as it would cause multiarch conflicts
+   when multiple different arch releases are installed simultaneously.  */
+
+#if defined __arm__
+# include "tdep-arm/dwarf-config.h"
+#elif defined __hppa__
+# include "tdep-hppa/dwarf-config.h"
+#elif defined __ia64__
+# include "tdep-ia64/dwarf-config.h"
+#elif defined __mips__
+# include "tdep-mips/dwarf-config.h"
+#elif defined __powerpc__ && !defined __powerpc64__
+# include "tdep-ppc32/dwarf-config.h"
+#elif defined __powerpc64__
+# include "tdep-ppc64/dwarf-config.h"
+#elif defined __i386__
+# include "tdep-x86/dwarf-config.h"
+#elif defined __x86_64__
+# include "tdep-x86_64/dwarf-config.h"
+#else
+# error "Unsupported arch"
+#endif
diff --git a/include/tdep/jmpbuf.h b/include/tdep/jmpbuf.h
new file mode 100644
index 0000000..e3cda31
--- /dev/null
+++ b/include/tdep/jmpbuf.h
@@ -0,0 +1,22 @@
+/* Provide a real file - not a symlink - as it would cause multiarch conflicts
+   when multiple different arch releases are installed simultaneously.  */
+
+#if defined __arm__
+# include "tdep-arm/jmpbuf.h"
+#elif defined __hppa__
+# include "tdep-hppa/jmpbuf.h"
+#elif defined __ia64__
+# include "tdep-ia64/jmpbuf.h"
+#elif defined __mips__
+# include "tdep-mips/jmpbuf.h"
+#elif defined __powerpc__ && !defined __powerpc64__
+# include "tdep-ppc32/jmpbuf.h"
+#elif defined __powerpc64__
+# include "tdep-ppc64/jmpbuf.h"
+#elif defined __i386__
+# include "tdep-x86/jmpbuf.h"
+#elif defined __x86_64__
+# include "tdep-x86_64/jmpbuf.h"
+#else
+# error "Unsupported arch"
+#endif
diff --git a/include/tdep/libunwind_i.h b/include/tdep/libunwind_i.h
new file mode 100644
index 0000000..cd8c2bf
--- /dev/null
+++ b/include/tdep/libunwind_i.h
@@ -0,0 +1,22 @@
+/* Provide a real file - not a symlink - as it would cause multiarch conflicts
+   when multiple different arch releases are installed simultaneously.  */
+
+#if defined __arm__
+# include "tdep-arm/libunwind_i.h"
+#elif defined __hppa__
+# include "tdep-hppa/libunwind_i.h"
+#elif defined __ia64__
+# include "tdep-ia64/libunwind_i.h"
+#elif defined __mips__
+# include "tdep-mips/libunwind_i.h"
+#elif defined __powerpc__ && !defined __powerpc64__
+# include "tdep-ppc32/libunwind_i.h"
+#elif defined __powerpc64__
+# include "tdep-ppc64/libunwind_i.h"
+#elif defined __i386__
+# include "tdep-x86/libunwind_i.h"
+#elif defined __x86_64__
+# include "tdep-x86_64/libunwind_i.h"
+#else
+# error "Unsupported arch"
+#endif

reply via email to

[Prev in Thread] Current Thread [Next in Thread]