Package: gsoap Version: 2.7.6d-1 Severity: normal Tags: patch
When trying to link on an amd64 machine, building my shared library fails with the following error: /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../../lib64/libgsoapssl++.a(libgsoapssl___a-stdsoap2_ssl_cpp.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../../lib64/libgsoapssl++.a: could not read symbols: Bad value collect2: ld returned 1 exit status Recompiling gsoap with the compiler flags '-fPIC -DPIC' solved the problem. I also encountered another build problem: the c versions and c++ version are build with different compiler flags. Setting CXXFLAGS equal to CFLAGS solved this problem too. John -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.15-1-amd64-k8 Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Versions of packages gsoap depends on: ii libc6 2.3.6-1 GNU C Library: Shared libraries an ii libgcc1 1:4.0.2-9 GCC support library ii libstdc++6 4.0.2-9 The GNU Standard C++ Library v3 gsoap recommends no packages. -- no debconf information
diff -Nurb gsoap-2.7.6d.dl/debian/rules gsoap-2.7.6d/debian/rules --- gsoap-2.7.6d.dl/debian/rules 2006-02-20 14:25:16.954109784 +0100 +++ gsoap-2.7.6d/debian/rules 2006-02-20 14:22:13.335024128 +0100 @@ -12,7 +12,7 @@ DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -CFLAGS = -Wall -g +CFLAGS = -Wall -g -fPIC -DPIC ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 @@ -26,7 +26,7 @@ config.status: configure dh_testdir # Add here commands to configure the package. - ./configure CFLAGS='$(CFLAGS)' --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info + ./configure CFLAGS='$(CFLAGS)' CXXFLAGS='$(CFLAGS)' --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info build: build-stamp