This bug was fixed in the package thunderbird -
1:52.1.1+build1-0ubuntu0.14.04.1

---------------
thunderbird (1:52.1.1+build1-0ubuntu0.14.04.1) trusty-security; urgency=medium

  * New upstream stable release (THUNDERBIRD_52_1_1_BUILD1)
    - see USN-3278-1

  [ Chris Coulson ]
  * Update and reenable unity-menubar.patch
  * Refresh patches:
    - update debian/patches/support-coinstallable-trunk-build.patch
  * Ensure we generate all of the required checksum files for FIPS mode
    to work correctly
    - update debian/build/rukes.mk
  * Drop the previous workaround for failing to link libprldap60.so on x86
    (exporting LIBS=-lc) and replace it with a more targetted workaround
    (LP: #1690445)
    - update debian/config/mozconfig.in
    - add debian/patches/fix-x86-link-failure.patch
    - update debian/patches/series

  [ Rico Tzschichholz ]
  * Unconditionally build-dep on libffi-dev
  * Refresh patches
    - update debian/patches/support-coinstallable-trunk-build.patch
    - update debian/patches/unity-menubar.patch
  * Pass "-Wnull-dereference -fno-delete-null-pointer-checks" as workaround
    for compilation with GCC6
    See https://bugzilla.mozilla.org/show_bug.cgi?id=1251576
  * Add build-dep on libx11-xcb-dev
  * Install the gtk2 directory and ICU data file
    - update debian/thunderbird.install.in

 -- Chris Coulson <[email protected]>  Fri, 05 May 2017
22:37:49 +0100

** Changed in: thunderbird (Ubuntu Trusty)
       Status: Fix Committed => Fix Released

** Bug watch added: Mozilla Bugzilla #1251576
   https://bugzilla.mozilla.org/show_bug.cgi?id=1251576

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to thunderbird in Ubuntu.
https://bugs.launchpad.net/bugs/1690445

Title:
  Link failure in trusty/i386

Status in thunderbird package in Ubuntu:
  Invalid
Status in thunderbird source package in Trusty:
  Fix Released

Bug description:
  Thunderbird fails to link on trusty/i386 with the following error:
  
/<<BUILDDIR>>/thunderbird-52.1.0+build2/obj-i686-linux-gnu/_virtualenv/bin/python
 /<<BUILDDIR>>/thunderbird-52.1.0+build2/mozilla/config/expandlibs_exec.py 
--uselist --  /usr/bin/g++ -std=gnu++11  -Wall -Wc++11-compat -Wempty-body 
-Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare 
-Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof 
-Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations 
-Wno-error=array-bounds -fno-exceptions -fno-strict-aliasing -fno-rtti 
-ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread 
-pipe  -g -freorder-blocks -Os -fomit-frame-pointer -fPIC -shared -Wl,-z,defs 
-Wl,--gc-sections -Wl,-h,libprldap60.so -o libprldap60.so  ldappr-dns.o 
ldappr-error.o ldappr-io.o ldappr-public.o ldappr-threads.o   -lpthread  
-Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id    
-Wl,-rpath-link,/<<BUILDDIR>>/thunderbird-52.1.0+build2/obj-i686-linux-gnu/dist/bin
 -Wl,-rpath-link,/usr/lib   ../../../../config/external/nspr/libnspr.a  
../../../../ldap/c-sdk/libraries/libldap/libldap60.so 
../../../../config/external/nspr/pr/libnspr4.so 
../../../../config/external/nspr/libc/libplc4.so 
../../../../config/external/nspr/ds/libplds4.so    -ldl
  Executing: /usr/bin/g++ -std=gnu++11 -Wall -Wc++11-compat -Wempty-body 
-Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare 
-Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof 
-Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations 
-Wno-error=array-bounds -fno-exceptions -fno-strict-aliasing -fno-rtti 
-ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread 
-pipe -g -freorder-blocks -Os -fomit-frame-pointer -fPIC -shared -Wl,-z,defs 
-Wl,--gc-sections -Wl,-h,libprldap60.so -o libprldap60.so 
/<<BUILDDIR>>/thunderbird-52.1.0+build2/obj-i686-linux-gnu/ldap/c-sdk/libraries/libprldap/tmpPoM9m_.list
 -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id 
-Wl,-rpath-link,/<<BUILDDIR>>/thunderbird-52.1.0+build2/obj-i686-linux-gnu/dist/bin
 -Wl,-rpath-link,/usr/lib ../libldap/libldap60.so 
../../../../config/external/nspr/pr/libnspr4.so 
../../../../config/external/nspr/libc/libplc4.so 
../../../../config/external/nspr/ds/libplds4.so -ldl
  
/<<BUILDDIR>>/thunderbird-52.1.0+build2/obj-i686-linux-gnu/ldap/c-sdk/libraries/libprldap/tmpPoM9m_.list:
      INPUT("ldappr-dns.o")
      INPUT("ldappr-error.o")
      INPUT("ldappr-io.o")
      INPUT("ldappr-public.o")
      INPUT("ldappr-threads.o")

  /usr/lib/i386-linux-gnu/libc_nonshared.a(stack_chk_fail_local.oS): In 
function `__stack_chk_fail_local':
  (.text+0x10): undefined reference to `__stack_chk_fail'
  collect2: error: ld returned 1 exit status
  make[5]: *** [libprldap60.so] Error 1
  make[5]: Leaving directory 
`/<<BUILDDIR>>/thunderbird-52.1.0+build2/obj-i686-linux-gnu/ldap/c-sdk/libraries/libprldap'
  make[4]: *** [ldap/c-sdk/libraries/libprldap/target] Error 2
  make[4]: *** Waiting for unfinished jobs....

  I've worked around this in the past by exporting "LIBS=-lc", but
  without really understanding what the issue is. So I've taken a proper
  look at this issue now.

  Firstly, "-lc" is passed to the linker without the previous
  workaround. This can be observed by adding --verbose to the link
  command:

  /usr/lib/gcc/i686-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-
  frame-hdr -m elf_i386 --hash-style=gnu --as-needed -shared -z relro -o
  libprldap60.so /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-
  gnu/crti.o /usr/lib/gcc/i686-linux-gnu/4.8/crtbeginS.o
  -L/usr/lib/gcc/i686-linux-gnu/4.8 -L/usr/lib/gcc/i686-linux-
  gnu/4.8/../../../i386-linux-gnu -L/usr/lib/gcc/i686-linux-
  gnu/4.8/../../../../lib -L/lib/i386-linux-gnu -L/lib/../lib
  -L/usr/lib/i386-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/i686-linux-
  gnu/4.8/../../.. -z defs --gc-sections -h libprldap60.so
  /build/thunderbird-52.1.1+build1/obj-i686-linux-
  gnu/ldap/c-sdk/libraries/libprldap/tmpPrXe8H.list -lpthread -z
  noexecstack -z text --build-id -rpath-link
  /build/thunderbird-52.1.1+build1/obj-i686-linux-gnu/dist/bin -rpath-
  link /usr/lib ../libldap/libldap60.so
  ../../../../config/external/nspr/pr/libnspr4.so
  ../../../../config/external/nspr/libc/libplc4.so
  ../../../../config/external/nspr/ds/libplds4.so -ldl -lstdc++ -lm
  -lgcc_s -lpthread -lc -lgcc_s /usr/lib/gcc/i686-linux-
  gnu/4.8/crtendS.o /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-
  gnu/crtn.o

  The workaround results in "-lc" being passed twice.

  Passing "-Wl,--verbose" to the link command shows that ld loads
  libc.so from /usr/lib/i386-linux-gnu/libc.so. This is actually a
  linker script containing the following line:

  GROUP ( /lib/i386-linux-gnu/libc.so.6 /usr/lib/i386-linux-
  gnu/libc_nonshared.a  AS_NEEDED ( /lib/i386-linux-gnu/ld-linux.so.2 )
  )

  So the linker first loads the real libc.so.6. However, none of the
  object files that we are linking use any symbols exported from libc.
  Because our default configuration is to link with --as-needed, this
  means that libc.so is dropped now and is not used for further symbol
  resolution. Then we load libc_nonshared.a, from which we require
  stack_chk_fail_local.oS. This contains a call to stack_chk_fail, which
  is exported from libc. The link now fails because it can't resolve the
  call to stack_chk_fail.

  It seems like libc_nonshared.a should come before libc.so.6.

  I can reproduce this with the attached C++ file (build commands are
  included at the top). If I remove -Wl,-z,defs from the test case, I
  get a .so without any DT_NEEDED entries

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/thunderbird/+bug/1690445/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to