profiles/prefix/linux/profile.bashrc: do not require ldd, bug #572902
authorFabian Groffen <grobian@gentoo.org>
Sun, 21 Feb 2016 16:58:51 +0000 (17:58 +0100)
committerFabian Groffen <grobian@gentoo.org>
Sun, 21 Feb 2016 16:59:27 +0000 (17:59 +0100)
profiles/prefix/linux/profile.bashrc

index 4e921825774907a48c01be28bfc5b35637376a50..693dd8e407ad62d3120e7e7ffc9e6cf1e0ec0fcd 100644 (file)
@@ -3,10 +3,27 @@
 #
 # # Remember, bash treats floats like strings..
 
+get_libc_vers_min() {
+       if [[ -x /usr/bin/ldd ]] ; then
+               /usr/bin/ldd --version \
+                       | head -n1 \
+                       | grep -o ") 2\.[0-9]\+" \
+                       | cut -d. -f2
+               return
+       elif [[ -x /lib/libc.so.6 || -x /lib64/libc.so.6 ]] ; then
+               /lib/libc.so.6 || lib64/libc.so.6 \
+                       | head -n1 \
+                       | grep -o 'version 2\.[0-9]\+' \
+                       | cut -d. -f2
+               return
+       fi
+       echo "0"
+}
+
 if [[ ${CATEGORY}/${PN} == sys-devel/gcc && ${EBUILD_PHASE} == unpack ]]; then
     # Since 2.3 > 2.12 in numerical terms, just compare 2.X to 2.Y, will break
     # if >=3.0 is ever released
-    VERS=$(/usr/bin/ldd --version | head -n1 | grep -o ") [0-9]\.[0-9]\+" | cut -d. -f2 )
+    VERS=$(get_libc_vers_min)
     if [[ $VERS -lt 12 ]]; then # compare host glibc 2.x to 2.12
         ewarn "Your host glibc is too old; disabling automatic fortify. bug 289757"
         EPATCH_EXCLUDE+=" 10_all_gcc-default-fortify-source.patch" # <=gcc-4.5*
@@ -15,11 +32,11 @@ if [[ ${CATEGORY}/${PN} == sys-devel/gcc && ${EBUILD_PHASE} == unpack ]]; then
 fi
 
 if [[ ${EBUILD_PHASE} == setup ]]; then
-    VERS=$(/usr/bin/ldd --version | head -n1 | grep -o ") [0-9]\.[0-9]\+" | cut -d. -f2 )
+    VERS=$(get_libc_vers_min)
     if [[ $VERS -lt 6 && "${CFLAGS} " != *'gnu89-inline '* ]]; then # compare host glibc 2.x to 2.6
         einfo "Your host glibc is too old; enabling -fgnu89-inline compiler flag. bug 473524"
         CFLAGS="${CFLAGS} -fgnu89-inline" # for C only
     fi  
 fi
 
-# vim: set syn=sh expandtab ts=4:
+# vim: set syn=sh: