[oe-commits] org.oe.dev merge of '558d7f8556530ca23dc6e4b7d687d6727d3a7397'
john_lee commit
oe at amethyst.openembedded.net
Fri Apr 25 15:32:49 UTC 2008
merge of '558d7f8556530ca23dc6e4b7d687d6727d3a7397'
and 'a22503624f899a2e28116f2ca9acb54520778734'
Author: john_lee at openmoko.com
Branch: org.openembedded.dev
Revision: 0c9e36ad8c5cd614ed55944ddcbab96a9310e2c8
ViewMTN: http://monotone.openembedded.org/revision/info/0c9e36ad8c5cd614ed55944ddcbab96a9310e2c8
Files:
1
packages/ipkg/files/ipkg_bugfix.patch
classes/sourcepkg.bbclass
packages/geoclue/geoclue_git.bb
packages/gypsy/gypsy.inc
packages/linux/linux-openmoko_2.6.22.5.bb
packages/meta/external-toolchain.bb
packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
packages/linux/linux-openmoko-devel_svn+2.6.23.1.bb
packages/linux/linux-openmoko-devel_svn+2.6.24-rc6.bb
packages/prelink/prelink-20060712
packages/prelink/prelink-20061027
packages/prelink/prelink_20060712.bb
packages/prelink/prelink_20061027.bb
packages/python/python-2.5.1/sitecustomize.py
classes/kernel.bbclass
contrib/python/generate-manifest-2.5.py
packages/linux/linux-rp-2.6.23+2.6.24-rc8/defconfig-collie
packages/linux/linux-rp_2.6.23+2.6.24-rc8.bb
packages/prelink/prelink-20061027/arm_eabi.patch
packages/python/python-2.5-manifest.inc
packages/python/python_2.5.1.bb
packages/qt4/qt_packaging.inc
Diffs:
#
# mt diff -r558d7f8556530ca23dc6e4b7d687d6727d3a7397 -r0c9e36ad8c5cd614ed55944ddcbab96a9310e2c8
#
#
#
# delete "packages/ipkg/files/ipkg_bugfix.patch"
#
# patch "classes/sourcepkg.bbclass"
# from [4d9f8a49273051e27cb3e914d97f9ea3ebcdaba3]
# to [e4c6fac480eaea68ccd24d95a5878b9f5e41b464]
#
# patch "packages/geoclue/geoclue_git.bb"
# from [41a9cfe777c671fde4cfbf21bc73e65fffa0fb5a]
# to [61b4116a51767becb10727a6f9d7fde0ca9adc6d]
#
# patch "packages/gypsy/gypsy.inc"
# from [816a8a3e7c95ea800fd63fba2e778e93cd84bbef]
# to [8012c6068130a1cb383a6ab9dbe962d33daf4224]
#
# patch "packages/linux/linux-openmoko_2.6.22.5.bb"
# from [48a109b0b7e850da45a142398cd214191154e96e]
# to [54c2460069bf93990744e6e0caf9a32409cf6acd]
#
# patch "packages/meta/external-toolchain.bb"
# from [dcaf40be62789b278a8bcf32b7d1a80010487c6a]
# to [8a4aa638876b87a86af07f785abb89bf79bf0378]
#
# patch "packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb"
# from [58d9f93157413d0ca323b5aeb9132e14c6bf0210]
# to [a4a2ac59779672f6a5b3885fc5f9e1f9cd030d69]
#
============================================================
--- classes/sourcepkg.bbclass 4d9f8a49273051e27cb3e914d97f9ea3ebcdaba3
+++ classes/sourcepkg.bbclass e4c6fac480eaea68ccd24d95a5878b9f5e41b464
@@ -18,14 +18,20 @@ def get_src_tree(d):
bb.error("S not defined, unable to find source tree.")
return
- s_tree_raw = s.split('/')[1]
+ try:
+ s_tree_raw = s.split('/')[1]
+ except IndexError:
+ return
+
s_tree = bb.data.expand(s_tree_raw, d)
src_tree_path = os.path.join(workdir, s_tree)
try:
os.listdir(src_tree_path)
except OSError:
- bb.fatal("Expected to find source tree in '%s' which doesn't exist." % src_tree_path)
+ bb.error("Expected to find source tree in '%s' which doesn't exist." % src_tree_path, s)
+ return
+
bb.debug("Assuming source tree is '%s'" % src_tree_path)
return s_tree
@@ -39,11 +45,14 @@ sourcepkg_do_create_orig_tgz(){
done
src_tree=${@get_src_tree(d)}
-
- echo $src_tree
+ if test x${src_tree} = x; then
+ oenote "Skipping empty source tree"
+ return
+ fi
+
oenote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz"
tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz --exclude-from temp/exclude-from-file $src_tree
- cp -pPR $src_tree $src_tree.orig
+ cp -av $src_tree $src_tree.orig
}
sourcepkg_do_archive_bb() {
@@ -74,7 +83,14 @@ python sourcepkg_do_dumpdata() {
bb.note("Dumping metadata into '%s'" % dumpfile)
f = open(dumpfile, "w")
# emit variables and shell functions
- bb.data.emit_env(f, d, True)
+
+ # FIXME: if we emit all, bitbake will get error while
+ # evaluating AUTOREV since we have AUTOREV =
+ # "${@bb.fetch.get_srcrev(d)}" in bitbake.conf, but get_srcrev
+ # without a valid SRC_URI will cause problem.
+
+ bb.data.emit_env(f, d, True)
+
# emit the metadata which isnt valid shell
for e in d.keys():
if bb.data.getVarFlag(e, 'python', d):
@@ -89,8 +105,11 @@ sourcepkg_do_create_diff_gz(){
echo $i >> temp/exclude-from-file
done
-
src_tree=${@get_src_tree(d)}
+ if test x${src_tree} = x; then
+ oenote "Skipping empty source tree"
+ return
+ fi
for i in `find . -maxdepth 1 -type f`; do
mkdir -p $src_tree/${DISTRO}/files
@@ -102,10 +121,10 @@ sourcepkg_do_create_diff_gz(){
rm -rf $src_tree.orig
}
-EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz
+#EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz
+EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_create_diff_gz
addtask create_orig_tgz after do_unpack before do_patch
+addtask archive_bb after do_patch before do_configure
+#addtask dumpdata after do_archive_bb before do_configure
+addtask create_diff_gz after do_archive_bb before do_configure
-addtask archive_bb after do_patch before do_dumpdata
-addtask dumpdata after do_archive_bb before do_create_diff_gz
-addtask create_diff_gz after do_dump_data before do_configure
-
============================================================
--- packages/geoclue/geoclue_git.bb 41a9cfe777c671fde4cfbf21bc73e65fffa0fb5a
+++ packages/geoclue/geoclue_git.bb 61b4116a51767becb10727a6f9d7fde0ca9adc6d
@@ -20,6 +20,10 @@ EXTRA_OECONF = " --enable-applet=no \
--enable-gpsd \
--enable-system-bus"
+do_stage() {
+ autotools_stage_all
+}
+
do_install_append() {
mkdir -p ${D}/usr/share/
cp -pPr ${D}${STAGING_DATADIR}/* ${D}/usr/share
============================================================
--- packages/gypsy/gypsy.inc 816a8a3e7c95ea800fd63fba2e778e93cd84bbef
+++ packages/gypsy/gypsy.inc 8012c6068130a1cb383a6ab9dbe962d33daf4224
@@ -5,6 +5,10 @@ inherit autotools pkgconfig
inherit autotools pkgconfig
+do_stage () {
+ autotools_stage_all
+}
+
do_configure_prepend () {
touch ${S}/gtk-doc.make
}
============================================================
--- packages/linux/linux-openmoko_2.6.22.5.bb 48a109b0b7e850da45a142398cd214191154e96e
+++ packages/linux/linux-openmoko_2.6.22.5.bb 54c2460069bf93990744e6e0caf9a32409cf6acd
@@ -60,12 +60,18 @@ module_autoload_s3cmci = "s3cmci"
# sd/mmc
module_autoload_s3cmci = "s3cmci"
-do_prepatch() {
- mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
- mv patches patches.openmoko
- mv .pc .pc.old
- mv ${WORKDIR}/defconfig-${KERNEL_RELEASE} ${WORKDIR}/defconfig
+python do_patch_prepend() {
+ def runcmd(cmd):
+ import commands
+ (status, output) = commands.getstatusoutput(cmd)
+ if status != 0:
+ raise Exception, "Status %i: %s" % (status >> 8, output)
+ return output
+ runcmd('mv %(WORKDIR)s/patches %(S)s/patches && cd %(S)s && '
+ 'quilt push -av && mv patches patches.openmoko && '
+ 'mv .pc .pc.old && mv %(WORKDIR)s/defconfig-%(KERNEL_RELEASE)s %(WORKDIR)s/defconfig' %
+ {'WORKDIR': bb.data.getVar('WORKDIR', d, 1),
+ 'S': bb.data.getVar('S', d, 1),
+ 'KERNEL_RELEASE': bb.data.getVar('KERNEL_RELEASE', d, 1)})
+ del runcmd
}
-
-addtask prepatch after do_unpack before do_patch
-
============================================================
--- packages/meta/external-toolchain.bb dcaf40be62789b278a8bcf32b7d1a80010487c6a
+++ packages/meta/external-toolchain.bb 8a4aa638876b87a86af07f785abb89bf79bf0378
@@ -15,7 +15,7 @@ PROVIDES = "\
virtual/linux-libc-headers \
"
-RPROVIDES = "glibc-utils libsegfault glibc-thread-db libgcc-dev libstdc++-dev libstdc++"
+#RPROVIDES = "glibc-utils libsegfault glibc-thread-db libgcc-dev libstdc++-dev libstdc++"
PACKAGES_DYNAMIC = "glibc-gconv-*"
PR = "r1"
============================================================
--- packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb 58d9f93157413d0ca323b5aeb9132e14c6bf0210
+++ packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb a4a2ac59779672f6a5b3885fc5f9e1f9cd030d69
@@ -3,9 +3,10 @@ PE = "1"
DEPENDS += "libxkbfile libxcalibrate"
PE = "1"
-PR = "r23"
+PR = "r22"
-SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
+#SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
+SRC_URI = "git://people.freedesktop.org/~dodji/xglamo;protocol=git;tag=master \
${KDRIVE_COMMON_PATCHES} \
file://enable-epson.patch;patch=1 \
file://enable-builtin-fonts.patch;patch=1 \
@@ -21,19 +22,11 @@ SRC_URI = "${XORG_MIRROR}/individual/xse
file://w100-fix-offscreen-bmp.patch;patch=1 \
file://kdrive-1.3-18bpp.patch;patch=1 \
file://gumstix-kmode.patch;patch=1 \
- file://smedia-glamo.patch;patch=1 \
- file://build-glamo.patch;patch=1 \
- file://00-xglamo-logs.patch;patch=1 \
- file://01-xglamo-scrolling-artifact-fix.patch;patch=1 \
- file://02-xglamo-no-dri.patch;patch=1 \
- file://03-xglamo-no-vesa.patch;patch=1 \
"
-SRC_URI_append_tosa = "file://tosa-fbdev.patch;patch=1"
-PACKAGE_ARCH_xserver-kdrive-fbdev_tosa = "${MACHINE_ARCH}"
+#S = "${WORKDIR}/xorg-server-${PV}"
+S = "${WORKDIR}/git"
-S = "${WORKDIR}/xorg-server-${PV}"
-
W100_OECONF = "--disable-w100"
W100_OECONF_arm = "--enable-w100"
#
# mt diff -ra22503624f899a2e28116f2ca9acb54520778734 -r0c9e36ad8c5cd614ed55944ddcbab96a9310e2c8
#
#
#
# delete "packages/linux/linux-openmoko-devel_svn+2.6.23.1.bb"
#
# delete "packages/linux/linux-openmoko-devel_svn+2.6.24-rc6.bb"
#
# rename "packages/prelink/prelink-20060712"
# to "packages/prelink/prelink-20061027"
#
# rename "packages/prelink/prelink_20060712.bb"
# to "packages/prelink/prelink_20061027.bb"
#
# add_file "packages/python/python-2.5.1/sitecustomize.py"
# content [af970496467ab4f0fbef36bbcac4de27afc77306]
#
# patch "classes/kernel.bbclass"
# from [0a8f1fb021e05b2bb2d0d90220ce554ae65408c2]
# to [5e2fcea2343f6d39c34c218026c453952cb0c444]
#
# patch "contrib/python/generate-manifest-2.5.py"
# from [42794139eb5d2d065e423c46dd2858a4b6a04f34]
# to [045a4cfcdcfa62445a0716d10a1057f696e9cac2]
#
# patch "packages/linux/linux-rp-2.6.23+2.6.24-rc8/defconfig-collie"
# from [c4ddf6f7a69b40a2cc6aec21cd1f07f72af013dd]
# to [c9da3bd7bc66685ea2b3e52ada4b3b1ea3d3353f]
#
# patch "packages/linux/linux-rp_2.6.23+2.6.24-rc8.bb"
# from [91c8f73922532616261250e9409b344de817d50d]
# to [6eabfddf3cf9eab10a398a56f6f2e7c58059c837]
#
# patch "packages/prelink/prelink-20061027/arm_eabi.patch"
# from [792cf1d80928f065648d51195df0b0ab7e20d3ad]
# to [e37e8305a07409cb123af8404160dc90f6366058]
#
# patch "packages/prelink/prelink_20061027.bb"
# from [39f815f5486961924f46aadcc0d4245c808b5667]
# to [f1e5e6b4ecc0058d522c825034b33534b8866429]
#
# patch "packages/python/python-2.5-manifest.inc"
# from [222e6f2ebafb935c27a644f71de53f3e6604a0c9]
# to [0c266696f36458248da59e37a73d4af5fe3dccba]
#
# patch "packages/python/python_2.5.1.bb"
# from [0198b3e00fbd71eb80cb5d69bb7d4cba293f89cb]
# to [55634fe124616917620d9a3239b160c4abcfd772]
#
# patch "packages/qt4/qt_packaging.inc"
# from [b7908307df304cf7663fbeed5aa0765694bc334f]
# to [10c4b21735e8cff175978c971577e1cac4681cad]
#
============================================================
--- packages/python/python-2.5.1/sitecustomize.py af970496467ab4f0fbef36bbcac4de27afc77306
+++ packages/python/python-2.5.1/sitecustomize.py af970496467ab4f0fbef36bbcac4de27afc77306
@@ -0,0 +1,45 @@
+# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+# GPLv2 or later
+# Version: 20082201
+# Features:
+# * set proper default encoding
+# * enable readline completion in the interactive interpreter
+# * load command line history on startup
+# * save command line history on exit
+
+HISTORY_FILENAME = "/tmp/python-history-file.txt"
+
+def __exithandler():
+ try:
+ readline.write_history_file( HISTORY_FILENAME )
+ except IOError:
+ pass
+
+def __registerExitHandler():
+ import atexit
+ atexit.register( __exithandler )
+
+def __enableReadlineSupport():
+ readline.parse_and_bind("tab: complete")
+ try:
+ readline.read_history_file( "/tmp/python-history-file.txt" )
+ except IOError:
+ pass
+
+def __enableDefaultEncoding():
+ import sys
+ try:
+ sys.setdefaultencoding('utf8')
+ except LookupError:
+ pass
+
+import sys
+try:
+ import rlcompleter, readline
+except ImportError:
+ sys.stderr.write( "Python %s (OpenEmbedded build) sitecustomize.py not active. Please install python-readline.\n" % sys.version.split()[0] )
+else:
+ __enableDefaultEncoding()
+ __registerExitHandler()
+ __enableReadlineSupport()
+ sys.stderr.write( "Python %s (OpenEmbedded build) sitecustomize.py active.\n" % sys.version.split()[0] )
============================================================
--- classes/kernel.bbclass 0a8f1fb021e05b2bb2d0d90220ce554ae65408c2
+++ classes/kernel.bbclass 5e2fcea2343f6d39c34c218026c453952cb0c444
@@ -231,6 +231,8 @@ module_autoload_sa1100-rtc = "sa1100-rtc
module_autoload_ircomm-tty = "ircomm-tty"
module_autoload_rfcomm = "rfcomm"
module_autoload_sa1100-rtc = "sa1100-rtc"
+# sa1100-rtc was renamed in 2.6.23 onwards
+module_autoload_rtc-sa1100 = "rtc-sa1100"
# alias defaults (alphabetically sorted)
module_conf_af_packet = "alias net-pf-17 af_packet"
============================================================
--- contrib/python/generate-manifest-2.5.py 42794139eb5d2d065e423c46dd2858a4b6a04f34
+++ contrib/python/generate-manifest-2.5.py 045a4cfcdcfa62445a0716d10a1057f696e9cac2
@@ -1,7 +1,7 @@
#!/usr/bin/env python
# generate Python Manifest for the OpenEmbedded build system
-# (C) 2002-2007 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+# (C) 2002-2008 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
# (C) 2007 Jeremy Laine
# licensed under MIT, see COPYING.MIT
@@ -10,11 +10,11 @@ VERSION = "2.5.1"
import time
VERSION = "2.5.1"
-# increase when touching python-core, this should be the same ml version as in python_2.5.1.bb
-BASEREV = 6
+# increase when touching python-core, this should be the same ml version as in python_2.5.x.bb
+BASEREV = 7
-__author__ = "Michael 'Mickey' Lauer <mickey at Vanille.de>"
-__version__ = "20071205"
+__author__ = "Michael 'Mickey' Lauer <mlauer at vanille-media.de>"
+__version__ = "20080122"
class MakefileMaker:
@@ -24,7 +24,7 @@ class MakefileMaker:
self.targetPrefix = "${libdir}/python%s/" % VERSION[:3]
self.output = outfile
self.out( "#" * 120 )
- self.out( "### AUTO-GENERATED by '%s' [(C) 2002-2007 Michael 'Mickey' Lauer <mlauer at vanille-media.de>] on %s" % ( sys.argv[0], time.asctime() ) )
+ self.out( "### AUTO-GENERATED by '%s' [(C) 2002-2008 Michael 'Mickey' Lauer <mlauer at vanille-media.de>] on %s" % ( sys.argv[0], time.asctime() ) )
self.out( "###" )
self.out( "### Visit THE Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy" )
self.out( "###" )
============================================================
--- packages/linux/linux-rp-2.6.23+2.6.24-rc8/defconfig-collie c4ddf6f7a69b40a2cc6aec21cd1f07f72af013dd
+++ packages/linux/linux-rp-2.6.23+2.6.24-rc8/defconfig-collie c9da3bd7bc66685ea2b3e52ada4b3b1ea3d3353f
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.24-rc8
-# Sun Jan 20 18:52:49 2008
+# Mon Jan 21 21:35:18 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -1279,9 +1279,9 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
+CONFIG_NLS=m
CONFIG_NLS_DEFAULT="cp437"
-CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
@@ -1305,7 +1305,7 @@ CONFIG_NLS_ASCII=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
============================================================
--- packages/linux/linux-rp_2.6.23+2.6.24-rc8.bb 91c8f73922532616261250e9409b344de817d50d
+++ packages/linux/linux-rp_2.6.23+2.6.24-rc8.bb 6eabfddf3cf9eab10a398a56f6f2e7c58059c837
@@ -1,6 +1,6 @@ require linux-rp.inc
require linux-rp.inc
-PR = "r1"
+PR = "r2"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_collie = "1"
============================================================
--- packages/prelink/prelink-20061027/arm_eabi.patch 792cf1d80928f065648d51195df0b0ab7e20d3ad
+++ packages/prelink/prelink-20061027/arm_eabi.patch e37e8305a07409cb123af8404160dc90f6366058
@@ -1,16 +1,22 @@
-Index: prelink-0.0.20050901/src/arch-arm.c
+---
+ src/arch-arm.c | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 172 insertions(+), 5 deletions(-)
+
+Index: prelink-0.0.20061027/src/arch-arm.c
===================================================================
---- prelink-0.0.20050901.orig/src/arch-arm.c 2004-09-30 17:07:57.000000000 +0100
-+++ prelink-0.0.20050901/src/arch-arm.c 2006-04-07 14:41:25.000000000 +0100
-@@ -145,6 +145,24 @@
+--- prelink-0.0.20061027.orig/src/arch-arm.c 2006-08-13 16:18:17.000000000 +0100
++++ prelink-0.0.20061027/src/arch-arm.c 2007-09-04 12:29:06.000000000 +0100
+@@ -145,6 +145,26 @@ arm_prelink_rel (struct prelink_info *in
error (0, 0, "%s: R_ARM_PC24 relocs with non-zero addend should not be present in prelinked REL sections",
dso->filename);
return 1;
-+ case R_ARM_TLS_DTPOFF32:
-+ write_le32 (dso, rel->r_offset, value);
++ /* DTPOFF32, DTPMOD32 and TPOFF32 is impossible to predict unless prelink
++ sets the rules. Also for DTPOFF32/TPOFF32 there is REL->RELA problem. */
++ case R_ARM_TLS_DTPOFF32:
++ if (dso->ehdr.e_type == ET_EXEC)
++ error (0, 0, "%s: R_ARM_TLS_DTPOFF32 relocs should not be present in prelinked ET_EXEC REL sections",
++ dso->filename);
+ break;
-+ /* DTPMOD32 and TPOFF32 is impossible to predict unless prelink
-+ sets the rules. Also for TPOFF{32,} there is REL->RELA problem. */
+ case R_ARM_TLS_DTPMOD32:
+ if (dso->ehdr.e_type == ET_EXEC)
+ {
@@ -27,14 +33,15 @@ Index: prelink-0.0.20050901/src/arch-arm
case R_ARM_COPY:
if (dso->ehdr.e_type == ET_EXEC)
/* COPY relocs are handled specially in generic code. */
-@@ -195,6 +213,24 @@
+@@ -195,6 +215,25 @@ arm_prelink_rela (struct prelink_info *i
write_le32 (dso, rela->r_offset,
(read_ule32 (dso, rela->r_offset) & 0xff000000) | val);
break;
+ case R_ARM_TLS_DTPOFF32:
-+ write_le32 (dso, rela->r_offset, value + rela->r_addend);
++ if (dso->ehdr.e_type == ET_EXEC)
++ write_le32 (dso, rela->r_offset, value + rela->r_addend);
+ break;
-+ /* DTPMOD32 and TPOFF32 is impossible to predict unless prelink
++ /* DTPMOD32 and TPOFF32 are impossible to predict unless prelink
+ sets the rules. */
+ case R_ARM_TLS_DTPMOD32:
+ if (dso->ehdr.e_type == ET_EXEC)
@@ -47,12 +54,12 @@ Index: prelink-0.0.20050901/src/arch-arm
+ case R_ARM_TLS_TPOFF32:
+ if (dso->ehdr.e_type == ET_EXEC && info->resolvetls)
+ write_le32 (dso, rela->r_offset,
-+ -(value + rela->r_addend - info->resolvetls->offset));
++ value + rela->r_addend + info->resolvetls->offset);
+ break;
case R_ARM_COPY:
if (dso->ehdr.e_type == ET_EXEC)
/* COPY relocs are handled specially in generic code. */
-@@ -315,6 +351,7 @@
+@@ -315,6 +354,7 @@ arm_prelink_conflict_rel (DSO *dso, stru
{
GElf_Addr value;
struct prelink_conflict *conflict;
@@ -60,7 +67,7 @@ Index: prelink-0.0.20050901/src/arch-arm
GElf_Rela *ret;
if (GELF_R_TYPE (rel->r_info) == R_ARM_RELATIVE
-@@ -324,8 +361,31 @@
+@@ -324,8 +364,32 @@ arm_prelink_conflict_rel (DSO *dso, stru
conflict = prelink_conflict (info, GELF_R_SYM (rel->r_info),
GELF_R_TYPE (rel->r_info));
if (conflict == NULL)
@@ -71,8 +78,9 @@ Index: prelink-0.0.20050901/src/arch-arm
+ return 0;
+ switch (GELF_R_TYPE (rel->r_info))
+ {
-+ /* Even local DTPMOD and TPOFF relocs need conflicts. */
++ /* Even local DTPMOD and {D,}TPOFF relocs need conflicts. */
+ case R_ARM_TLS_DTPMOD32:
++ case R_ARM_TLS_DTPOFF32:
+ case R_ARM_TLS_TPOFF32:
+ break;
+ default:
@@ -94,7 +102,7 @@ Index: prelink-0.0.20050901/src/arch-arm
ret = prelink_conflict_add_rela (info);
if (ret == NULL)
return 1;
-@@ -342,6 +402,33 @@
+@@ -342,6 +406,33 @@ arm_prelink_conflict_rel (DSO *dso, stru
error (0, 0, "%s: R_ARM_%s relocs should not be present in prelinked REL sections",
dso->filename, GELF_R_TYPE (rel->r_info) == R_ARM_ABS32 ? "ABS32" : "PC24");
return 1;
@@ -117,18 +125,18 @@ Index: prelink-0.0.20050901/src/arch-arm
+ ret->r_addend = tls->modid;
+ break;
+ case R_ARM_TLS_DTPOFF32:
-+ ret->r_addend = value;
++ ret->r_addend = value + read_ule32 (dso, rel->r_offset);
+ break;
+ case R_ARM_TLS_TPOFF32:
-+ ret->r_addend = -(value + read_ule32 (dso, rel->r_offset)
-+ - tls->offset);
++ ret->r_addend = value + read_ule32 (dso, rel->r_offset)
++ + tls->offset;
+ break;
+ }
+ break;
case R_ARM_COPY:
error (0, 0, "R_ARM_COPY should not be present in shared libraries");
return 1;
-@@ -359,6 +446,7 @@
+@@ -359,6 +450,7 @@ arm_prelink_conflict_rela (DSO *dso, str
{
GElf_Addr value;
struct prelink_conflict *conflict;
@@ -136,7 +144,7 @@ Index: prelink-0.0.20050901/src/arch-arm
GElf_Rela *ret;
Elf32_Sword val;
-@@ -369,8 +457,31 @@
+@@ -369,8 +461,32 @@ arm_prelink_conflict_rela (DSO *dso, str
conflict = prelink_conflict (info, GELF_R_SYM (rela->r_info),
GELF_R_TYPE (rela->r_info));
if (conflict == NULL)
@@ -147,8 +155,9 @@ Index: prelink-0.0.20050901/src/arch-arm
+ return 0;
+ switch (GELF_R_TYPE (rela->r_info))
+ {
-+ /* Even local DTPMOD and TPOFF relocs need conflicts. */
++ /* Even local DTPMOD and {D,}TPOFF relocs need conflicts. */
+ case R_ARM_TLS_DTPMOD32:
++ case R_ARM_TLS_DTPOFF32:
+ case R_ARM_TLS_TPOFF32:
+ break;
+ default:
@@ -170,7 +179,7 @@ Index: prelink-0.0.20050901/src/arch-arm
ret = prelink_conflict_add_rela (info);
if (ret == NULL)
return 1;
-@@ -398,6 +509,32 @@
+@@ -398,6 +514,32 @@ arm_prelink_conflict_rela (DSO *dso, str
case R_ARM_COPY:
error (0, 0, "R_ARM_COPY should not be present in shared libraries");
return 1;
@@ -193,78 +202,80 @@ Index: prelink-0.0.20050901/src/arch-arm
+ ret->r_addend = tls->modid;
+ break;
+ case R_ARM_TLS_DTPOFF32:
-+ ret->r_addend += value;
++ ret->r_addend = value + rela->r_addend;
+ break;
+ case R_ARM_TLS_TPOFF32:
-+ ret->r_addend = -(value + rela->r_addend - tls->offset);
++ ret->r_addend = value + rela->r_addend + tls->offset;
+ break;
+ }
+ break;
default:
error (0, 0, "%s: Unknown arm relocation type %d", dso->filename,
(int) GELF_R_TYPE (rela->r_info));
-@@ -418,6 +555,7 @@
+@@ -418,6 +560,8 @@ arm_rel_to_rela (DSO *dso, GElf_Rel *rel
abort ();
case R_ARM_RELATIVE:
case R_ARM_ABS32:
+ case R_ARM_TLS_TPOFF32:
++ case R_ARM_TLS_DTPOFF32:
rela->r_addend = (Elf32_Sword) read_ule32 (dso, rel->r_offset);
break;
case R_ARM_PC24:
-@@ -426,6 +564,8 @@
+@@ -426,6 +570,7 @@ arm_rel_to_rela (DSO *dso, GElf_Rel *rel
break;
case R_ARM_COPY:
case R_ARM_GLOB_DAT:
-+ case R_ARM_TLS_DTPOFF32:
+ case R_ARM_TLS_DTPMOD32:
rela->r_addend = 0;
break;
}
-@@ -445,6 +585,7 @@
+@@ -445,6 +590,8 @@ arm_rela_to_rel (DSO *dso, GElf_Rela *re
abort ();
case R_ARM_RELATIVE:
case R_ARM_ABS32:
+ case R_ARM_TLS_TPOFF32:
++ case R_ARM_TLS_DTPOFF32:
write_le32 (dso, rela->r_offset, rela->r_addend);
break;
case R_ARM_PC24:
-@@ -453,6 +594,8 @@
+@@ -453,6 +600,7 @@ arm_rela_to_rel (DSO *dso, GElf_Rela *re
| ((rela->r_addend >> 2) & 0xffffff));
break;
case R_ARM_GLOB_DAT:
+ case R_ARM_TLS_DTPMOD32:
-+ case R_ARM_TLS_DTPOFF32:
write_le32 (dso, rela->r_offset, 0);
break;
}
-@@ -488,6 +631,13 @@
+@@ -488,6 +636,15 @@ arm_need_rel_to_rela (DSO *dso, int firs
/* FALLTHROUGH */
case R_ARM_PC24:
return 1;
++ case R_ARM_TLS_DTPOFF32:
+ case R_ARM_TLS_TPOFF32:
-+ /* In shared libraries TPOFF is changed always into
++ /* In shared libraries {D,}TPOFF32 is changed always into
+ conflicts, for executables we need to preserve
+ original addend. */
-+ if (dso->ehdr.e_type == ET_EXEC)
++ if (dso->ehdr.e_type == ET_EXEC) {
+ return 1;
++ }
+ break;
}
}
}
-@@ -612,6 +762,12 @@
+@@ -612,6 +769,12 @@ arm_undo_prelink_rel (DSO *dso, GElf_Rel
return 0;
error (0, 0, "%s: R_ARM_COPY reloc in shared library?", dso->filename);
return 1;
+ case R_ARM_TLS_DTPMOD32:
-+ case R_ARM_TLS_DTPOFF32:
+ write_le32 (dso, rel->r_offset, 0);
+ break;
++ case R_ARM_TLS_DTPOFF32:
+ case R_ARM_TLS_TPOFF32:
+ break;
default:
error (0, 0, "%s: Unknown arm relocation type %d", dso->filename,
(int) GELF_R_TYPE (rel->r_info));
-@@ -634,6 +790,10 @@
+@@ -634,6 +797,10 @@ arm_reloc_class (int reloc_type)
{
case R_ARM_COPY: return RTYPE_CLASS_COPY;
case R_ARM_JUMP_SLOT: return RTYPE_CLASS_PLT;
@@ -275,7 +286,7 @@ Index: prelink-0.0.20050901/src/arch-arm
default: return RTYPE_CLASS_VALID;
}
}
-@@ -64%s
>>> DIFF TRUNCATED @ 16K
More information about the Openembedded-commits
mailing list