From cbea306a5ee37af87b6ba6c37e1f94cbaa90923e Mon Sep 17 00:00:00 2001 From: Kyrylo Tkachov Date: Wed, 22 Apr 2015 15:34:46 +0000 Subject: [PATCH] Revert: 2015-04-22 Gregor Richards * config.gcc (LIBC_MUSL): New tm_defines macro. * config/linux.h (OPTION_MUSL): Define. (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,) (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,) (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define. * config/linux.opt (mmusl): New option. * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*. (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*. * configure: Regenerate. From-SVN: r222330 --- gcc/ChangeLog | 17 +++++++ gcc/config.gcc | 5 +-- gcc/config/linux.h | 105 ++++++------------------------------------- gcc/config/linux.opt | 4 -- gcc/configure | 7 --- gcc/configure.ac | 7 --- 6 files changed, 32 insertions(+), 113 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de916806285..1ffccddd658 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,20 @@ +2015-04-22 Kyrylo Tkachov + + Revert: + 2015-04-22 Gregor Richards + + * config.gcc (LIBC_MUSL): New tm_defines macro. + * config/linux.h (OPTION_MUSL): Define. + (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,) + (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,) + (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define. + + * config/linux.opt (mmusl): New option. + * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*. + (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*. + + * configure: Regenerate. + 2015-04-22 Gregor Richards * config.gcc (LIBC_MUSL): New tm_defines macro. diff --git a/gcc/config.gcc b/gcc/config.gcc index 0176ca2386d..a1df0433285 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -575,7 +575,7 @@ case ${target} in esac # Common C libraries. -tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4" +tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3" # 32-bit x86 processors supported by --with-arch=. Each processor # MUST be separated by exactly one space. @@ -725,9 +725,6 @@ case ${target} in *-*-*uclibc*) tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" ;; - *-*-*musl*) - tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL" - ;; *) tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" ;; diff --git a/gcc/config/linux.h b/gcc/config/linux.h index cda87bfe2b8..857389a8c2d 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -32,12 +32,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC) #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC) #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC) -#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL) #else #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC) #define OPTION_BIONIC (linux_libc == LIBC_BIONIC) -#define OPTION_MUSL (linux_libc == LIBC_MUSL) #endif #define GNU_USER_TARGET_OS_CPP_BUILTINS() \ @@ -52,25 +50,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see } while (0) /* Determine which dynamic linker to use depending on whether GLIBC or - uClibc or Bionic or musl is the default C library and whether - -muclibc or -mglibc or -mbionic or -mmusl has been passed to change - the default. */ + uClibc or Bionic is the default C library and whether + -muclibc or -mglibc or -mbionic has been passed to change the default. */ -#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \ - "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}" +#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \ + "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}" #if DEFAULT_LIBC == LIBC_GLIBC -#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ - CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M) +#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ + CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B) #elif DEFAULT_LIBC == LIBC_UCLIBC -#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ - CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M) +#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ + CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B) #elif DEFAULT_LIBC == LIBC_BIONIC -#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ - CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M) -#elif DEFAULT_LIBC == LIBC_MUSL -#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ - CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B) +#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ + CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U) #else #error "Unsupported DEFAULT_LIBC" #endif /* DEFAULT_LIBC */ @@ -90,92 +84,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define GNU_USER_DYNAMIC_LINKER \ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ - BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) + BIONIC_DYNAMIC_LINKER) #define GNU_USER_DYNAMIC_LINKER32 \ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \ - BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32) + BIONIC_DYNAMIC_LINKER32) #define GNU_USER_DYNAMIC_LINKER64 \ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \ - BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64) + BIONIC_DYNAMIC_LINKER64) #define GNU_USER_DYNAMIC_LINKERX32 \ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \ - BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32) + BIONIC_DYNAMIC_LINKERX32) /* Whether we have Bionic libc runtime */ #undef TARGET_HAS_BIONIC #define TARGET_HAS_BIONIC (OPTION_BIONIC) -/* musl avoids problematic includes by rearranging the include directories. - * Unfortunately, this is mostly duplicated from cppdefault.c */ -#if DEFAULT_LIBC == LIBC_MUSL -#define INCLUDE_DEFAULTS_MUSL_GPP \ - { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \ - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \ - { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \ - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \ - { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \ - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - -#ifdef LOCAL_INCLUDE_DIR -#define INCLUDE_DEFAULTS_MUSL_LOCAL \ - { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \ - { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, -#else -#define INCLUDE_DEFAULTS_MUSL_LOCAL -#endif - -#ifdef PREFIX_INCLUDE_DIR -#define INCLUDE_DEFAULTS_MUSL_PREFIX \ - { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0}, -#else -#define INCLUDE_DEFAULTS_MUSL_PREFIX -#endif - -#ifdef CROSS_INCLUDE_DIR -#define INCLUDE_DEFAULTS_MUSL_CROSS \ - { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0}, -#else -#define INCLUDE_DEFAULTS_MUSL_CROSS -#endif - -#ifdef TOOL_INCLUDE_DIR -#define INCLUDE_DEFAULTS_MUSL_TOOL \ - { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0}, -#else -#define INCLUDE_DEFAULTS_MUSL_TOOL -#endif - -#ifdef NATIVE_SYSTEM_HEADER_DIR -#define INCLUDE_DEFAULTS_MUSL_NATIVE \ - { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ - { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 }, -#else -#define INCLUDE_DEFAULTS_MUSL_NATIVE -#endif - -#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) -# undef INCLUDE_DEFAULTS_MUSL_LOCAL -# define INCLUDE_DEFAULTS_MUSL_LOCAL -# undef INCLUDE_DEFAULTS_MUSL_NATIVE -# define INCLUDE_DEFAULTS_MUSL_NATIVE -#else -# undef INCLUDE_DEFAULTS_MUSL_CROSS -# define INCLUDE_DEFAULTS_MUSL_CROSS -#endif - -#undef INCLUDE_DEFAULTS -#define INCLUDE_DEFAULTS \ - { \ - INCLUDE_DEFAULTS_MUSL_GPP \ - INCLUDE_DEFAULTS_MUSL_PREFIX \ - INCLUDE_DEFAULTS_MUSL_CROSS \ - INCLUDE_DEFAULTS_MUSL_TOOL \ - INCLUDE_DEFAULTS_MUSL_NATIVE \ - { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ - { 0, 0, 0, 0, 0, 0 } \ - } -#endif - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ /* This is a *uclinux* target. We don't define below macros to normal linux versions, because doing so would require *uclinux* targets to include diff --git a/gcc/config/linux.opt b/gcc/config/linux.opt index 9334f747332..c054338443b 100644 --- a/gcc/config/linux.opt +++ b/gcc/config/linux.opt @@ -30,7 +30,3 @@ Use GNU C library muclibc Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic) Use uClibc C library - -mmusl -Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc) -Use musl C library diff --git a/gcc/configure b/gcc/configure index 5345f695404..9523773e721 100755 --- a/gcc/configure +++ b/gcc/configure @@ -27678,9 +27678,6 @@ if test "${gcc_cv_libc_provides_ssp+set}" = set; then : else gcc_cv_libc_provides_ssp=no case "$target" in - *-*-musl*) - # All versions of musl provide stack protector - gcc_cv_libc_provides_ssp=yes;; *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) # glibc 2.4 and later provides __stack_chk_fail and # either __stack_chk_guard, or TLS access to stack guard canary. @@ -27713,7 +27710,6 @@ fi # ) and for now # simply assert that glibc does provide this, which is true for all # realistically usable GNU/Hurd configurations. - # All supported versions of musl provide it as well gcc_cv_libc_provides_ssp=yes;; *-*-darwin* | *-*-freebsd*) ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail" @@ -27810,9 +27806,6 @@ case "$target" in gcc_cv_target_dl_iterate_phdr=no fi ;; - *-linux-musl*) - gcc_cv_target_dl_iterate_phdr=yes - ;; esac if test x$gcc_cv_target_dl_iterate_phdr = xyes; then diff --git a/gcc/configure.ac b/gcc/configure.ac index 27ecdcda6c0..68b0ee83fac 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -5199,9 +5199,6 @@ AC_CACHE_CHECK(__stack_chk_fail in target C library, gcc_cv_libc_provides_ssp, [gcc_cv_libc_provides_ssp=no case "$target" in - *-*-musl*) - # All versions of musl provide stack protector - gcc_cv_libc_provides_ssp=yes;; *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) # glibc 2.4 and later provides __stack_chk_fail and # either __stack_chk_guard, or TLS access to stack guard canary. @@ -5228,7 +5225,6 @@ AC_CACHE_CHECK(__stack_chk_fail in target C library, # ) and for now # simply assert that glibc does provide this, which is true for all # realistically usable GNU/Hurd configurations. - # All supported versions of musl provide it as well gcc_cv_libc_provides_ssp=yes;; *-*-darwin* | *-*-freebsd*) AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes], @@ -5302,9 +5298,6 @@ case "$target" in gcc_cv_target_dl_iterate_phdr=no fi ;; - *-linux-musl*) - gcc_cv_target_dl_iterate_phdr=yes - ;; esac GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR]) if test x$gcc_cv_target_dl_iterate_phdr = xyes; then -- 2.30.2