|
|
Message-ID: <CAPLrYES+LpZ6u+J7G4ijksSSFVeuxMk5qBmFSz8rt+JxojnTXA@mail.gmail.com>
Date: Sat, 30 Mar 2013 10:51:41 +0100
From: Daniel Cegiełka <daniel.cegielka@...il.com>
To: musl@...ts.openwall.com
Subject: Re: musl and gcc-4.8 (sabotage)
2013/3/29 Szabolcs Nagy <nsz@...t70.net>
> for some reason the diff got attached as octet stream
>
> i'd cc gregor since it was his work originally and he
> is not subscribed to the ml
>
> this part seems to change the behaviour for other
> libcs, is that necessary?
>
>
glibc, bionic and uclib have special definitions to be able to detect which
libc is used (__GLIBC__, __UCLIBC__). musl doesn't support such solutions,
so we can use host_os (gcc-4.8-musl.diff):
diff -urN gcc-4.8-20130321.orig/libstdc++-v3/configure.host
gcc-4.8-20130321/libstdc++-v3/configure.host
--- gcc-4.8-20130321.orig/libstdc++-v3/configure.host Sat Mar 30
00:29:39 2013
+++ gcc-4.8-20130321/libstdc++-v3/configure.host Sat Mar 30 00:31:28 2013
@@ -268,6 +268,8 @@
os_include_dir="os/uclibc"
elif [ "$bionic" = "yes" ]; then
os_include_dir="os/bionic"
+ elif [ "$host_os" = "linux-musl" ]; then
+ os_include_dir="os/generic"
else
os_include_dir="os/gnu-linux"
fi
or detect glibc in gcc way (gcc-4.8-musl2.diff):
diff -urN gcc-4.8-20130321.orig/libstdc++-v3/acinclude.m4
gcc-4.8-20130321/libstdc++-v3/acinclude.m4
--- gcc-4.8-20130321.orig/libstdc++-v3/acinclude.m4 Fri Mar 29 22:23:14
2013
+++ gcc-4.8-20130321/libstdc++-v3/acinclude.m4 Fri Mar 29 22:30:53 2013
@@ -99,6 +99,13 @@
# Check for C library flavor since GNU/Linux platforms use different
# configuration directories depending on the C library in use.
+ AC_EGREP_CPP([_using_glibc], [
+ #include <features.h>
+ #if __GLIBC__
+ _using_glibc
+ #endif
+ ], glibc=yes, glibc=no)
+
AC_EGREP_CPP([_using_uclibc], [
#include <stdio.h>
#if __UCLIBC__
diff -urN gcc-4.8-20130321.orig/libstdc++-v3/configure
gcc-4.8-20130321/libstdc++-v3/configure
--- gcc-4.8-20130321.orig/libstdc++-v3/configure Fri Mar 29 22:23:14 2013
+++ gcc-4.8-20130321/libstdc++-v3/configure Fri Mar 29 22:29:23 2013
@@ -5243,6 +5243,24 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+ #include <features.h>
+ #if __GLIBC__
+ _using_glibc
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "_using_glibc" >/dev/null 2>&1; then :
+ glibc=yes
+else
+ glibc=no
+fi
+rm -f conftest*
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
#include <stdio.h>
#if __UCLIBC__
_using_uclibc
diff -urN gcc-4.8-20130321.orig/libstdc++-v3/configure.host
gcc-4.8-20130321/libstdc++-v3/configure.host
--- gcc-4.8-20130321.orig/libstdc++-v3/configure.host Fri Mar 29
22:23:14 2013
+++ gcc-4.8-20130321/libstdc++-v3/configure.host Fri Mar 29 22:36:15 2013
@@ -264,12 +264,14 @@
os_include_dir="os/bsd/freebsd"
;;
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
- if [ "$uclibc" = "yes" ]; then
+ if [ "$glibc" = "yes" ]; then
+ os_include_dir="os/gnu-linux"
+ elif [ "$uclibc" = "yes" ]; then
os_include_dir="os/uclibc"
elif [ "$bionic" = "yes" ]; then
os_include_dir="os/bionic"
else
- os_include_dir="os/gnu-linux"
+ os_include_dir="os/generic"
fi
;;
hpux*)
Daniel
Content of type "text/html" skipped
Download attachment "gcc-4.8-musl.diff" of type "application/octet-stream" (14375 bytes)
Download attachment "gcc-4.8-musl2.diff" of type "application/octet-stream" (15902 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.