Package: tarantool Version: 1.4.8+20130212.1728-1 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu ubuntu-patch raring
I'm not entirely sure why this doesn't fail on Debian; I think our linker is a bit stricter than yours. However, tarantool fails to build on current Ubuntu as follows: Linking C executable tarantool_box cd /build/buildd/tarantool-1.4.8+20130212.1728/build-area/src/box && /usr/bin/cmake -E cmake_link_script CMakeFiles/tarantool_box.dir/link.txt --verbose=1 /usr/bin/cc -fno-omit-frame-pointer -fno-stack-protector -fexceptions -funwind-tables -std=gnu99 -Wall -Wextra -Wno-sign-compare -Wno-strict-aliasing -pthread -ggdb -O2 CMakeFiles/tarantool_box.dir/tuple.m.o CMakeFiles/tarantool_box.dir/index.m.o CMakeFiles/tarantool_box.dir/hash_index.m.o CMakeFiles/tarantool_box.dir/tree_index.m.o CMakeFiles/tarantool_box.dir/space.m.o CMakeFiles/tarantool_box.dir/port.m.o CMakeFiles/tarantool_box.dir/request.m.o CMakeFiles/tarantool_box.dir/txn.m.o CMakeFiles/tarantool_box.dir/box.m.o CMakeFiles/tarantool_box.dir/box.lua.c.o CMakeFiles/tarantool_box.dir/box_lua.m.o CMakeFiles/tarantool_box.dir/box_lua_space.m.o CMakeFiles/tarantool_box.dir/__/__/cfg/tarantool_box_cfg.c.o -o tarantool_box -rdynamic libltbox.a ../../cfg/libcfg.a ../libcore.a ../../libev.a ../../libeio.a ../../libcoro.a ../../libgopt.a ../../third_party/luajit/src/libluajit.a ../../third_party/libobjc/libobjc.a ../../libmisc.a -lpthread -ldl -lbfd -liberty -lm ../../third_party/libobjc/libobjc.a: In function `objc_msgSend_fpret': (.text+0x6bb9): undefined reference to `__i686.get_pc_thunk.bx' ../../third_party/libobjc/libobjc.a: In function `objc_msgSend': (.text+0x6c58): undefined reference to `__i686.get_pc_thunk.bx' ../../third_party/libobjc/libobjc.a: In function `objc_msgSend_stret': (.text+0x6cf7): undefined reference to `__i686.get_pc_thunk.bx' collect2: error: ld returned 1 exit status make[3]: *** [src/box/tarantool_box] Error 1 (Full build log at https://launchpadlibrarian.net/131061509/buildlog_ubuntu-raring-i386.tarantool_1.4.8%2B20130212.1728-1_FAILEDTOBUILD.txt.gz if you need it.) If you're using __i686.get_pc_thunk.bx, I believe it's conventional to define it in the same file, rather than relying on some other library to define it for you; see e.g. http://www.gentoo.org/proj/en/hardened/pic-fix-guide.xml. The following patch should do the trick if you agree. * Make sure __i686.get_pc_thunk.bx is defined. diff -Nru tarantool-1.4.8+20130212.1728/debian/patches/link-thunk.patch tarantool-1.4.8+20130212.1728/debian/patches/link-thunk.patch --- tarantool-1.4.8+20130212.1728/debian/patches/link-thunk.patch 1970-01-01 01:00:00.000000000 +0100 +++ tarantool-1.4.8+20130212.1728/debian/patches/link-thunk.patch 2013-03-14 15:17:10.000000000 +0000 @@ -0,0 +1,17 @@ +Index: b/third_party/libobjc/objc_msgSend.x86-32.S +=================================================================== +--- a/third_party/libobjc/objc_msgSend.x86-32.S ++++ b/third_party/libobjc/objc_msgSend.x86-32.S +@@ -98,3 +98,12 @@ + .type objc_msgSend_stret, @function + objc_msgSend_stret: + MSGSEND 8, 12, 0 ++ ++ .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits ++.globl __i686.get_pc_thunk.bx ++ .hidden __i686.get_pc_thunk.bx ++ .p2align 4 ++ .type __i686.get_pc_thunk.bx,@function ++__i686.get_pc_thunk.bx: ++ movl (%esp), %ebx ++ ret diff -Nru tarantool-1.4.8+20130212.1728/debian/patches/series tarantool-1.4.8+20130212.1728/debian/patches/series --- tarantool-1.4.8+20130212.1728/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ tarantool-1.4.8+20130212.1728/debian/patches/series 2013-03-14 14:56:41.000000000 +0000 @@ -0,0 +1 @@ +link-thunk.patch Thanks, -- Colin Watson [cjwat...@ubuntu.com] -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org