Message ID | 20240306011959.1033034-1-yangyujie@loongson.cn |
---|---|
State | New |
Headers | show |
Series | LoongArch: Use /lib instead of /lib64 as the library search path for MUSL. | expand |
Pushed to r14-9351. 在 2024/3/6 上午9:19, Yang Yujie 写道: > gcc/ChangeLog: > > * config.gcc: Add a case for loongarch*-*-linux-musl*. > * config/loongarch/linux.h: Disable the multilib-compatible > treatment for *musl* targets. > * config/loongarch/musl.h: New file. > --- > gcc/config.gcc | 3 +++ > gcc/config/loongarch/linux.h | 4 +++- > gcc/config/loongarch/musl.h | 23 +++++++++++++++++++++++ > 3 files changed, 29 insertions(+), 1 deletion(-) > create mode 100644 gcc/config/loongarch/musl.h > > diff --git a/gcc/config.gcc b/gcc/config.gcc > index a1480b72c46..3293be16699 100644 > --- a/gcc/config.gcc > +++ b/gcc/config.gcc > @@ -2538,6 +2538,9 @@ riscv*-*-freebsd*) > > loongarch*-*-linux*) > tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}" > + case ${target} in > + *-linux-musl*) tm_file="${tm_file} loongarch/musl.h" > + esac > tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h loongarch/loongarch-driver.h" > extra_options="${extra_options} linux-android.opt" > tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux" > diff --git a/gcc/config/loongarch/linux.h b/gcc/config/loongarch/linux.h > index 17d9f87537b..40d9ba6d405 100644 > --- a/gcc/config/loongarch/linux.h > +++ b/gcc/config/loongarch/linux.h > @@ -21,7 +21,9 @@ along with GCC; see the file COPYING3. If not see > * This ensures that a compiler configured with --disable-multilib > * can work in a multilib environment. */ > > -#if defined(LA_DISABLE_MULTILIB) && defined(LA_DISABLE_MULTIARCH) > +#if !defined(LA_DEFAULT_TARGET_MUSL) \ > + && defined(LA_DISABLE_MULTILIB) \ > + && defined(LA_DISABLE_MULTIARCH) > > #if DEFAULT_ABI_BASE == ABI_BASE_LP64D > #define ABI_LIBDIR "lib64" > diff --git a/gcc/config/loongarch/musl.h b/gcc/config/loongarch/musl.h > new file mode 100644 > index 00000000000..fa43bc86606 > --- /dev/null > +++ b/gcc/config/loongarch/musl.h > @@ -0,0 +1,23 @@ > +/* Definitions for MUSL C library support. > + Copyright (C) 2024 Free Software Foundation, Inc. > + > +This file is part of GCC. > + > +GCC is free software; you can redistribute it and/or modify > +it under the terms of the GNU General Public License as published by > +the Free Software Foundation; either version 3, or (at your option) > +any later version. > + > +GCC is distributed in the hope that it will be useful, > +but WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +GNU General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with GCC; see the file COPYING3. If not see > +<http://www.gnu.org/licenses/>. */ > + > + > +#ifndef LA_DEFAULT_TARGET_MUSL > +#define LA_DEFAULT_TARGET_MUSL > +#endif
diff --git a/gcc/config.gcc b/gcc/config.gcc index a1480b72c46..3293be16699 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2538,6 +2538,9 @@ riscv*-*-freebsd*) loongarch*-*-linux*) tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}" + case ${target} in + *-linux-musl*) tm_file="${tm_file} loongarch/musl.h" + esac tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h loongarch/loongarch-driver.h" extra_options="${extra_options} linux-android.opt" tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux" diff --git a/gcc/config/loongarch/linux.h b/gcc/config/loongarch/linux.h index 17d9f87537b..40d9ba6d405 100644 --- a/gcc/config/loongarch/linux.h +++ b/gcc/config/loongarch/linux.h @@ -21,7 +21,9 @@ along with GCC; see the file COPYING3. If not see * This ensures that a compiler configured with --disable-multilib * can work in a multilib environment. */ -#if defined(LA_DISABLE_MULTILIB) && defined(LA_DISABLE_MULTIARCH) +#if !defined(LA_DEFAULT_TARGET_MUSL) \ + && defined(LA_DISABLE_MULTILIB) \ + && defined(LA_DISABLE_MULTIARCH) #if DEFAULT_ABI_BASE == ABI_BASE_LP64D #define ABI_LIBDIR "lib64" diff --git a/gcc/config/loongarch/musl.h b/gcc/config/loongarch/musl.h new file mode 100644 index 00000000000..fa43bc86606 --- /dev/null +++ b/gcc/config/loongarch/musl.h @@ -0,0 +1,23 @@ +/* Definitions for MUSL C library support. + Copyright (C) 2024 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +<http://www.gnu.org/licenses/>. */ + + +#ifndef LA_DEFAULT_TARGET_MUSL +#define LA_DEFAULT_TARGET_MUSL +#endif