1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-09 05:29:32 +00:00

libzypp: Increase the size of the arch compat table

Fix [YOCTO #1313]

Increase the size of the arch compat table to 30 entries.

Also cleanup a few things related to Poky -> OE name changing.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>

Fixed up arm patch

Signed-off-by: Saul Wold <sgw@linux.intel.com>
This commit is contained in:
Mark Hatle
2011-08-04 11:33:23 -05:00
committed by Saul Wold
parent f783f74e39
commit b79b40e101
4 changed files with 113 additions and 57 deletions
@@ -8,14 +8,15 @@ before the usage of _foo during the initialization of the compatibility
table.
The patch, along with a similar change to the recipe generation of the
poky-arch.h file, remove the DEF_BUILTIN globals and replace them with
oe-arch.h file, remove the DEF_BUILTIN globals and replace them with
immediate strings wherever they are used.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
--- git.orig/zypp/Arch.cc 2011-03-29 14:15:32.695079271 -0500
+++ git/zypp/Arch.cc 2011-03-29 14:17:22.680910025 -0500
Index: git/zypp/Arch.cc
===================================================================
--- git.orig/zypp/Arch.cc 2011-08-04 21:03:31.000000000 -0700
+++ git/zypp/Arch.cc 2011-08-04 21:04:16.635480895 -0700
@@ -152,13 +152,10 @@
// NOTE: Thake care CompatBits::IntT is able to provide one
// bit for each architecture.
@@ -24,13 +25,13 @@ diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
- DEF_BUILTIN( all );
- DEF_BUILTIN( any );
- DEF_BUILTIN( noarch );
-#include "poky-arch.h"
-#undef DEF_BUILTIN
+/* Global constructors are not working properly on ARM, avoid the
+ * known bad case and merge constructors in with the usages
+ */
-#include "oe-arch.h"
-#undef DEF_BUILTIN
///////////////////////////////////////////////////////////////////
//
@@ -227,9 +224,9 @@
@@ -46,7 +47,7 @@ diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
///////////////////////////////////////////////////////////////////
// Define the CompatibleWith relation:
//
@@ -305,9 +302,9 @@
@@ -331,9 +328,9 @@
///////////////////////////////////////////////////////////////////
const Arch Arch_empty ( IdString::Empty );
@@ -57,9 +58,9 @@ diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
+ const Arch Arch_any( IdString ( "any" ) );
+ const Arch Arch_noarch( IdString ( "noarch" ) );
#define POKY_PROTO 1
#include "poky-arch.h"
@@ -316,7 +316,7 @@
#define OE_PROTO 1
#include "oe-arch.h"
@@ -345,7 +342,7 @@
// METHOD TYPE : Ctor
//
Arch::Arch()
@@ -0,0 +1,54 @@
zypp/Arch.cc: Add room for additional architecture compatibilities
Upstream-status: Pending
Increase the size of the compatibility table from 9 to 30. There are already
existing checks within libzypp to ensure that we don't overflow the 64-bit
architecture field, so nothing further was required.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
--- git.orig/zypp/Arch.cc 2011-08-02 16:40:37.696662889 -0500
+++ git/zypp/Arch.cc 2011-08-04 11:24:18.051745246 -0500
@@ -280,13 +280,39 @@
IdString arch6_r = IdString(),
IdString arch7_r = IdString(),
IdString arch8_r = IdString(),
- IdString arch9_r = IdString() )
+ IdString arch9_r = IdString(),
+ IdString arch10_r = IdString(),
+ IdString arch11_r = IdString(),
+ IdString arch12_r = IdString(),
+ IdString arch13_r = IdString(),
+ IdString arch14_r = IdString(),
+ IdString arch15_r = IdString(),
+ IdString arch16_r = IdString(),
+ IdString arch17_r = IdString(),
+ IdString arch18_r = IdString(),
+ IdString arch19_r = IdString(),
+ IdString arch20_r = IdString(),
+ IdString arch21_r = IdString(),
+ IdString arch22_r = IdString(),
+ IdString arch23_r = IdString(),
+ IdString arch24_r = IdString(),
+ IdString arch25_r = IdString(),
+ IdString arch26_r = IdString(),
+ IdString arch27_r = IdString(),
+ IdString arch28_r = IdString(),
+ IdString arch29_r = IdString(),
+ IdString arch30_r = IdString() )
{
const CompatEntry & target( assertCompatSetEntry( targetArch_r ) );
target.addCompatBit( assertCompatSetEntry( arch0_r )._idBit );
#define _SETARG(N) if ( arch##N##_r.empty() ) return; target.addCompatBit( assertCompatSetEntry( arch##N##_r )._idBit )
_SETARG(1); _SETARG(2); _SETARG(3); _SETARG(4);
_SETARG(5); _SETARG(6); _SETARG(7); _SETARG(8); _SETARG(9);
+ _SETARG(10); _SETARG(11); _SETARG(12); _SETARG(13); _SETARG(14);
+ _SETARG(15); _SETARG(16); _SETARG(17); _SETARG(18); _SETARG(19);
+ _SETARG(20); _SETARG(21); _SETARG(22); _SETARG(23); _SETARG(24);
+ _SETARG(25); _SETARG(26); _SETARG(27); _SETARG(28); _SETARG(29);
+ _SETARG(30);
#undef _SETARG
}
@@ -3,7 +3,7 @@ Upstream-Status: Inappropriate [distribution]
Disable all of the internal architectures
We disable all of the internal architectures and replace them with ones
generated by the libzypp recipe as specified in the poky-arch.h.
generated by the libzypp recipe as specified in the oe-arch.h.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
@@ -148,7 +148,7 @@ diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
-
- DEF_BUILTIN( sh4 );
- DEF_BUILTIN( sh4a );
+#include "poky-arch.h"
+#include "oe-arch.h"
#undef DEF_BUILTIN
///////////////////////////////////////////////////////////////////
@@ -211,9 +211,9 @@ diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
- //
- defCompatibleWith( _sh4, _noarch );
- defCompatibleWith( _sh4a, _noarch,_sh4 );
+#define POKY_DEF_COMPAT 1
+#include "poky-arch.h"
+#undef POKY_DEF_COMPAT
+#define OE_DEF_COMPAT 1
+#include "oe-arch.h"
+#undef OE_DEF_COMPAT
//
///////////////////////////////////////////////////////////////////
// dumpOn( USR ) << endl;
@@ -270,9 +270,9 @@ diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc
-
- const Arch Arch_sh4( _sh4 );
- const Arch Arch_sh4a( _sh4a );
+#define POKY_PROTO 1
+#include "poky-arch.h"
+#undef POKY_PROTO
+#define OE_PROTO 1
+#include "oe-arch.h"
+#undef OE_PROTO
///////////////////////////////////////////////////////////////////
//
@@ -398,9 +398,9 @@ diff -ur git.orig/zypp/Arch.h git/zypp/Arch.h
- extern const Arch Arch_sh4;
- /** \relates Arch */
- extern const Arch Arch_sh4a;
+#define POKY_EXTERN_PROTO 1
+#include "poky-arch.h"
+#undef POKY_EXTERN_PROTO
+#define OE_EXTERN_PROTO 1
+#include "oe-arch.h"
+#undef OE_EXTERN_PROTO
//@}
///////////////////////////////////////////////////////////////////
@@ -411,7 +411,7 @@ diff -ur git.orig/zypp/CMakeLists.txt git/zypp/CMakeLists.txt
SET( zypp_HEADERS
Arch.h
+ poky-arch.h
+ oe-arch.h
AutoDispose.h
Bit.h
ByteCount.h
+35 -34
View File
@@ -14,16 +14,17 @@ RDEPENDS_${PN} = "sat-solver"
S = "${WORKDIR}/git"
SRCREV = "15b6c52260bbc52b3d8e585e271b67e10cc7c433"
PV = "0.0-git${SRCPV}"
PR = "r12"
PR = "r13"
SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \
file://no-doc.patch \
file://rpm5.patch \
file://rpm5-no-rpmdbinit.patch \
file://config-release.patch \
file://libzypp-pokyarch.patch \
file://libzypp-oearch.patch \
file://libzypp-compatargs.patch \
file://fix_for_compile_wth_gcc-4.6.0.patch \
file://hardcode-lib-fix.patch \
file://hardcode-lib-fix.patch \
"
SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
@@ -49,57 +50,57 @@ AVOID_CONSTRUCTOR_mips = "true"
do_archgen () {
# We need to dynamically generate our arch file based on the machine
# configuration
echo "/* Automatically generated by the libzypp recipes */" > zypp/poky-arch.h
echo "/* Avoid Constructor: ${AVOID_CONSTRUCTOR} */" >> zypp/poky-arch.h
echo "" >> zypp/poky-arch.h
echo "#ifndef POKY_ARCH_H" >> zypp/poky-arch.h
echo "#define POKY_ARCH_H 1" >> zypp/poky-arch.h
echo "#define Arch_machine Arch_${MACHINE_ARCH}" | tr - _ >> zypp/poky-arch.h
echo "#endif /* POKY_ARCH_H */" >> zypp/poky-arch.h
echo "" >> zypp/poky-arch.h
echo "/* Automatically generated by the libzypp recipes */" > zypp/oe-arch.h
echo "/* Avoid Constructor: ${AVOID_CONSTRUCTOR} */" >> zypp/oe-arch.h
echo "" >> zypp/oe-arch.h
echo "#ifndef OE_ARCH_H" >> zypp/oe-arch.h
echo "#define OE_ARCH_H 1" >> zypp/oe-arch.h
echo "#define Arch_machine Arch_${MACHINE_ARCH}" | tr - _ >> zypp/oe-arch.h
echo "#endif /* OE_ARCH_H */" >> zypp/oe-arch.h
echo "" >> zypp/oe-arch.h
if [ "${AVOID_CONSTRUCTOR}" != "true" ]; then
echo "#ifdef DEF_BUILTIN" >> zypp/poky-arch.h
echo "/* Specify builtin types */" >> zypp/poky-arch.h
echo "#ifdef DEF_BUILTIN" >> zypp/oe-arch.h
echo "/* Specify builtin types */" >> zypp/oe-arch.h
for each_arch in ${PACKAGE_ARCHS} ; do
case "$each_arch" in
all | any | noarch)
continue;;
esac
echo " DEF_BUILTIN( ${each_arch} );" | tr - _ >> zypp/poky-arch.h
echo " DEF_BUILTIN( ${each_arch} );" | tr - _ >> zypp/oe-arch.h
done
echo "#endif /* DEF_BUILTIN */" >> zypp/poky-arch.h
echo "" >> zypp/poky-arch.h
echo "#endif /* DEF_BUILTIN */" >> zypp/oe-arch.h
echo "" >> zypp/oe-arch.h
fi
echo "#ifdef POKY_EXTERN_PROTO" >> zypp/poky-arch.h
echo "/* Specify extern prototypes */" >> zypp/poky-arch.h
echo "#ifdef OE_EXTERN_PROTO" >> zypp/oe-arch.h
echo "/* Specify extern prototypes */" >> zypp/oe-arch.h
for each_arch in ${PACKAGE_ARCHS} ; do
case "$each_arch" in
all | any | noarch)
continue;;
esac
echo " extern const Arch Arch_${each_arch};" | tr - _ >> zypp/poky-arch.h
echo " extern const Arch Arch_${each_arch};" | tr - _ >> zypp/oe-arch.h
done
echo "#endif /* POKY_EXTERN_PROTO */" >> zypp/poky-arch.h
echo "" >> zypp/poky-arch.h
echo "#ifdef POKY_PROTO" >> zypp/poky-arch.h
echo "/* Specify prototypes */" >> zypp/poky-arch.h
echo "#endif /* OE_EXTERN_PROTO */" >> zypp/oe-arch.h
echo "" >> zypp/oe-arch.h
echo "#ifdef OE_PROTO" >> zypp/oe-arch.h
echo "/* Specify prototypes */" >> zypp/oe-arch.h
for each_arch in ${PACKAGE_ARCHS} ; do
case "$each_arch" in
all | any | noarch)
continue;;
esac
if [ "${AVOID_CONSTRUCTOR}" != "true" ]; then
echo -n " const Arch Arch_${each_arch} " | tr - _ >> zypp/poky-arch.h
echo "(_${each_arch});" >> zypp/poky-arch.h
echo -n " const Arch Arch_${each_arch} " | tr - _ >> zypp/oe-arch.h
echo "(_${each_arch});" >> zypp/oe-arch.h
else
echo -n " const Arch Arch_${each_arch} " | tr - _ >> zypp/poky-arch.h
echo "( IdString ( \"${each_arch}\" ) );" >> zypp/poky-arch.h
echo -n " const Arch Arch_${each_arch} " | tr - _ >> zypp/oe-arch.h
echo "( IdString ( \"${each_arch}\" ) );" >> zypp/oe-arch.h
fi
done
echo "#endif /* POKY_PROTO */" >> zypp/poky-arch.h
echo "" >> zypp/poky-arch.h
echo "#ifdef POKY_DEF_COMPAT" >> zypp/poky-arch.h
echo "/* Specify compatibility information */" >> zypp/poky-arch.h
echo "#endif /* OE_PROTO */" >> zypp/oe-arch.h
echo "" >> zypp/oe-arch.h
echo "#ifdef OE_DEF_COMPAT" >> zypp/oe-arch.h
echo "/* Specify compatibility information */" >> zypp/oe-arch.h
INSTALL_PLATFORM_ARCHS=""
for each_arch in ${PACKAGE_ARCHS} ; do
INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS"
@@ -134,10 +135,10 @@ do_archgen () {
COMPAT_WITH="${CARCH},${COMPAT} $COMPAT_WITH"
done
for each_compat in ${COMPAT_WITH} ; do
echo " defCompatibleWith( ${each_compat} );" >> zypp/poky-arch.h
echo " defCompatibleWith( ${each_compat} );" >> zypp/oe-arch.h
done
echo "#endif /* DEF_COMPAT */" >> zypp/poky-arch.h
echo "" >> zypp/poky-arch.h
echo "#endif /* DEF_COMPAT */" >> zypp/oe-arch.h
echo "" >> zypp/oe-arch.h
}
addtask archgen before do_configure after do_patch