[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