Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 472404 - sys-fs/cryptsetup-1.6.1[static]: popt link test fails due to undefined __secure_getenv
Summary: sys-fs/cryptsetup-1.6.1[static]: popt link test fails due to undefined __secu...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
: 474640 484544 495216 501068 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-06-05 13:37 UTC by Eric Grüttefien
Modified: 2014-02-12 14:08 UTC (History)
10 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Grüttefien 2013-06-05 13:37:11 UTC
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for poptConfigFileToString in -lpopt... yes
configure: WARNING: Requested static cryptsetup build, enabling static library.
checking for DEVMAPPER... yes
checking whether dm_task_secure_data is declared... yes
checking whether dm_task_retry_remove is declared... yes
checking whether DM_UDEV_DISABLE_DISK_RULES_FLAG is declared... yes
checking linux/if_alg.h usability... yes
checking linux/if_alg.h presence... yes
checking for linux/if_alg.h... yes
checking for x86_64-pc-linux-gnu-libgcrypt-config... no
checking for libgcrypt-config... /usr/bin/libgcrypt-config
checking for LIBGCRYPT - version >= 1.6.0... no
checking for x86_64-pc-linux-gnu-libgcrypt-config... /usr/bin/libgcrypt-config
checking for LIBGCRYPT - version >= 1.1.42... yes (1.5.2)
checking for gcry_check_version in -lgcrypt... yes
checking for poptGetContext in -lpopt... no
configure: error: Cannot find static popt library.


Reproducible: Always
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2013-06-05 13:55:48 UTC
Index: cryptsetup-1.6.1.ebuild
===================================================================
RCS file: /var/cvsroot/gentoo-x86/sys-fs/cryptsetup/cryptsetup-1.6.1.ebuild,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -B -r1.2 -r1.3
--- cryptsetup-1.6.1.ebuild     4 Jun 2013 22:00:52 -0000       1.2
+++ cryptsetup-1.6.1.ebuild     4 Jun 2013 22:14:11 -0000       1.3
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/cryptsetup/cryptsetup-1.6.1.ebuild,v 1.2 2013/06/04 22:00:52 radhermit Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/cryptsetup/cryptsetup-1.6.1.ebuild,v 1.3 2013/06/04 22:14:11 flameeyes Exp $
 
 EAPI=5
 PYTHON_COMPAT=( python{2_5,2_6,2_7} )
@@ -31,10 +31,10 @@
        sys-libs/e2fsprogs-libs[static-libs(+)]
        udev? ( virtual/udev[static-libs(+)] )"
 # We have to always depend on ${LIB_DEPEND} rather than put behind
-# static? () because we provide a shared library which links against
+# !static? () because we provide a shared library which links against
 # these other packages. #414665
 RDEPEND="static-libs? ( ${LIB_DEPEND} )
-       ${LIB_DEPEND//\[static-libs(+)]}
+       ${LIB_DEPEND//\[static-libs\(+\)\]}
        selinux? ( sys-libs/libselinux )
        python? ( ${PYTHON_DEPS} )"
 DEPEND="${RDEPEND}

This maybe?
Comment 2 Eric Grüttefien 2013-06-05 14:24:50 UTC
dev-libs/popt-1.16-r1 was build with static-libs so now i have no idea why it's failing
Comment 3 Neil Bothwick 2013-06-05 16:04:28 UTC
I had the same error, rebuilding popt fixed it for me.
Comment 4 Johannes Hirte 2013-06-06 20:00:00 UTC
config.log says:

configure:16945: x86_64-pc-linux-gnu-gcc -o conftest -O2 -march=amdfam10 -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -ftracer -fvect-cost-model -pipe  -Wl,-O1 -Wl,--as-needed c
onftest.c -lpopt   -static >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libpopt.a(popt.o): In function `poptGetContext':
(.text+0x107c): undefined reference to `__secure_getenv'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libpopt.a(popt.o): In function `poptGetContext':
(.text+0x1175): undefined reference to `__secure_getenv'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libpopt.a(popt.o): In function `poptGetContext':
(.text+0x11d6): undefined reference to `__secure_getenv'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libpopt.a(popt.o): In function `poptGetNextOpt':
(.text+0x2dbc): undefined reference to `__secure_getenv'
collect2: error: ld returned 1 exit status
configure:16945: $? = 1

Maybe another problem with the gold linker?
Comment 5 Juergen Rose 2013-06-07 06:31:13 UTC
I have the same issue:

checking for poptGetContext in -lpopt... no
configure: error: Cannot find static popt library.

!!! Please attach the following file when seeking support:
!!! /var/tmp/portage/sys-fs/cryptsetup-1.6.1/work/cryptsetup-1.6.1/config.log
 * ERROR: sys-fs/cryptsetup-1.6.1 failed (configure phase):
 *   econf failed
 * 
 * Call stack:
 *          ebuild.sh, line   93:  Called src_configure
 *        environment, line 3897:  Called econf '--sbindir=/sbin' '--enable-shared' '--enable-static-cryptsetup' '--disable-static' '--enable-nls' '--enable-python' '--disable-cryptsetup-reencrypt' '--disable-selinux' '--enable-udev' '--enable-dev-random' '--with-crypto_backend=gcrypt'
 *   phase-helpers.sh, line  521:  Called die
 * The specific snippet of code:
 *                      die "econf failed"
 * 
 * If you need support, post the output of `emerge --info '=sys-fs/cryptsetup-1.6.1'`,
 * the complete build log and the output of `emerge -pqv '=sys-fs/cryptsetup-1.6.1'`.
 * The complete build log is located at '/var/tmp/portage/sys-fs/cryptsetup-1.6.1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-fs/cryptsetup-1.6.1/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-fs/cryptsetup-1.6.1/work/cryptsetup-1.6.1'
 * S: '/var/tmp/portage/sys-fs/cryptsetup-1.6.1/work/cryptsetup-1.6.1'

>>> Failed to emerge sys-fs/cryptsetup-1.6.1, Log file:

>>>  '/var/tmp/portage/sys-fs/cryptsetup-1.6.1/temp/build.log'
root@impala:/usr/src(17)# qlist -Iv popt
dev-libs/popt-1.16-r1
root@impala:/usr/src(18)# genlop -t popt | tail

     Sat Jun  2 15:32:40 2012 >>> dev-libs/popt-1.16-r1
       merge time: 21 seconds.

     Sun Jun  3 16:09:51 2012 >>> dev-libs/popt-1.16-r1
       merge time: 21 seconds.

     Sun Mar  3 16:29:35 2013 >>> dev-libs/popt-1.16-r1
       merge time: 23 seconds.


root@impala:/usr/src(20)# grep -U2 popt /var/tmp/portage/sys-fs/cryptsetup-1.6.1/work/cryptsetup-1.6.1/config.log
configure:15243: checking where the gettext function comes from
configure:15254: result: libc
configure:15315: checking for poptConfigFileToString in -lpopt
configure:15340: x86_64-pc-linux-gnu-gcc -o conftest -march=amdfam10 -O2 -pipe  -Wl,-O1 -Wl,--as-needed conftest.c -lpopt   >&5
configure:15340: $? = 0
configure:15349: result: yes
--
configure:16438: $? = 0
configure:16447: result: yes
configure:16920: checking for poptGetContext in -lpopt
configure:16945: x86_64-pc-linux-gnu-gcc -o conftest -march=amdfam10 -O2 -pipe  -Wl,-O1 -Wl,--as-needed conftest.c -lpopt   -static >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/../../../../lib64/libpopt.a(popt.o): In function `poptGetContext':
(.text+0x101c): undefined reference to `__secure_getenv'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/../../../../lib64/libpopt.a(popt.o): In function `poptGetContext':
(.text+0x1096): undefined reference to `__secure_getenv'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/../../../../lib64/libpopt.a(popt.o): In function `poptGetNextOpt':
(.text+0x2a9c): undefined reference to `__secure_getenv'
collect2: ld returned 1 exit status
--
| extern "C"
| #endif
| char poptGetContext ();
| int
| main ()
| {
| return poptGetContext ();
|   ;
|   return 0;
| }
configure:16954: result: no
configure:16964: error: Cannot find static popt library.

## ---------------- ##
--
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_lib_gcrypt_gcry_check_version=yes
ac_cv_lib_popt_poptConfigFileToString=yes
ac_cv_lib_popt_poptGetContext=no
ac_cv_lib_uuid_uuid_clear=yes
ac_cv_objext=o
--
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH='/var/tmp/portage/sys-fs/cryptsetup-1.6.1/temp/python2.7/pkgconfig'
POPT_LIBS='-lpopt '
POSUB='po'
PWQUALITY_CFLAGS=''


After reemerging popt I can also emerge cryptsetup-1.6.0.
Comment 6 Torsten Kaiser 2013-06-08 18:58:29 UTC
I had the same problem (and found the same error as Juergen Rose in my config.log) and rebuilding popt also fixed it for me.

What I think has happend:
__secure_getenv seems to be a private glibc function that got used anyway. At least one Google result suggsted this and that it got renamed and promoted to secure_getenv, because there obvious where users for this function.

So popt was build against one glibc that had __secure_getenv. That was encoded into the static popt library. Then glibc was upgraded and now no longer provides this function. revdep-rebuild only checks dynamic librarys, but not the static ones and so this breakage was not detected.

Fix: rebuilding popt. It will now build against the symbols of the new glibc and no longer reference the missing function in its static library.
Comment 7 Martin Dummer 2013-06-13 06:21:32 UTC
(In reply to Neil Bothwick from comment #3)
> I had the same error, rebuilding popt fixed it for me.

Just for statistics: same workaround works for me, too.
Comment 8 SpanKY gentoo-dev 2013-06-17 01:50:42 UTC
there's not really anything to be done here that i can see
Comment 9 Tim Harder gentoo-dev 2013-06-24 22:46:19 UTC
*** Bug 474640 has been marked as a duplicate of this bug. ***
Comment 10 Samuli Suominen (RETIRED) gentoo-dev 2013-12-24 18:21:35 UTC
*** Bug 495216 has been marked as a duplicate of this bug. ***
Comment 11 Samuli Suominen (RETIRED) gentoo-dev 2014-01-14 08:56:18 UTC
*** Bug 484544 has been marked as a duplicate of this bug. ***
Comment 12 Samuli Suominen (RETIRED) gentoo-dev 2014-02-12 14:08:02 UTC
*** Bug 501068 has been marked as a duplicate of this bug. ***