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

Bug#649094: fix 64bit biarch linker scripts



tags 649094 + patch
thanks

at least for 64bit biarch

dpkg-cross (2.6.9ubuntu2) raring; urgency=low

  * Handle biarch linker scripts - LP: #1090800

 -- Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>   Mon, 17 Dec 2012
15:01:29 +0100

--- dpkg-cross	2012-08-21 11:01:32.000000000 +0200
+++ /usr/bin/dpkg-cross	2012-12-17 14:07:54.848879084 +0100
@@ -628,6 +628,8 @@
 		}
 		while (<FROM>) {
 			s:(^|[^-\w/])(/usr)?/lib/$multiarch:$1$crosslib/:g;
+			s:(^|[^-\w/])(/usr)?/lib64/$multiarch:$1$crosslib64/:g;
+			s:(^|[^-\w/])(/usr)?/lib64/:$1$crosslib64/:g;
 			print TO;
 		}
 		close(FROM);
@@ -798,6 +800,13 @@
 		} elsif ((m:^/emul/ia32-linux/usr/lib/([^/]+\.[ao])$:)) {
 			# regular .a or .o file under /emul/ia32-linux/ for #463588
 			link_file("$src$_", "$dst$crosslib32/$1") or goto fail;
+		} elsif (m:^(/usr)?/lib64/($multiarch)?([^/]+\.so[^/]*)$:) {
+			# regular .so* file under /lib64, /usr/lib64, /lib64/<triplet>, /usr/lib64/<triplet>
+			if (is_ldscript("$src$_")) {
+				fix_ldscript("$src$_", "$dst$crosslib64/$3") or goto fail;
+			} else {
+				link_file("$src$_", "$dst$crosslib64/$3") or goto fail;
+			}
 		} elsif (m:^(/usr)?/lib/($multiarch)?([^/]+\.so[^/]*)$:) {
 			# regular .so* file under /lib, /usr/lib, /lib/<triplet>, /usr/lib/<triplet>
 			if (is_ldscript("$src$_")) {

Reply to: