diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/loongarch/cpu-features.c | 29 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/loongarch/cpu-features.h | 18 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c | 60 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c | 21 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/loongarch/libc-start.c | 34 |
5 files changed, 4 insertions, 158 deletions
diff --git a/sysdeps/unix/sysv/linux/loongarch/cpu-features.c b/sysdeps/unix/sysv/linux/loongarch/cpu-features.c deleted file mode 100644 index 1290c4ce9f..0000000000 --- a/sysdeps/unix/sysv/linux/loongarch/cpu-features.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Initialize CPU feature data. LoongArch64 version. - This file is part of the GNU C Library. - Copyright (C) 2023 Free Software Foundation, Inc. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <cpu-features.h> -#include <elf/dl-hwcaps.h> -#include <elf/dl-tunables.h> -extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *) attribute_hidden; - -static inline void -init_cpu_features (struct cpu_features *cpu_features) -{ - GLRO (dl_larch_cpu_features).hwcap = GLRO (dl_hwcap); - TUNABLE_GET (glibc, cpu, hwcaps, tunable_val_t *, TUNABLE_CALLBACK (set_hwcaps)); -} diff --git a/sysdeps/unix/sysv/linux/loongarch/cpu-features.h b/sysdeps/unix/sysv/linux/loongarch/cpu-features.h index 450963cebc..d1a280a5ee 100644 --- a/sysdeps/unix/sysv/linux/loongarch/cpu-features.h +++ b/sysdeps/unix/sysv/linux/loongarch/cpu-features.h @@ -19,23 +19,13 @@ #ifndef _CPU_FEATURES_LOONGARCH64_H #define _CPU_FEATURES_LOONGARCH64_H -#include <stdint.h> #include <sys/auxv.h> -struct cpu_features - { - uint64_t hwcap; - }; +#define SUPPORT_UAL (GLRO (dl_hwcap) & HWCAP_LOONGARCH_UAL) +#define SUPPORT_LSX (GLRO (dl_hwcap) & HWCAP_LOONGARCH_LSX) +#define SUPPORT_LASX (GLRO (dl_hwcap) & HWCAP_LOONGARCH_LASX) -/* Get a pointer to the CPU features structure. */ -extern const struct cpu_features *_dl_larch_get_cpu_features (void) - __attribute__ ((pure)); - -#define SUPPORT_UAL (GLRO (dl_larch_cpu_features).hwcap & HWCAP_LOONGARCH_UAL) -#define SUPPORT_LSX (GLRO (dl_larch_cpu_features).hwcap & HWCAP_LOONGARCH_LSX) -#define SUPPORT_LASX (GLRO (dl_larch_cpu_features).hwcap & HWCAP_LOONGARCH_LASX) -#define RTLD_SUPPORT_LSX (GLRO (dl_hwcap) & HWCAP_LOONGARCH_LSX) -#define RTLD_SUPPORT_LASX (GLRO (dl_hwcap) & HWCAP_LOONGARCH_LASX) #define INIT_ARCH() #endif /* _CPU_FEATURES_LOONGARCH64_H */ + diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c b/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c deleted file mode 100644 index 6217fda983..0000000000 --- a/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Data for LoongArch64 version of processor capability information. - Linux version. - Copyright (C) 2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* If anything should be added here check whether the size of each string - is still ok with the given array size. - - All the #ifdefs in the definitions are quite irritating but - necessary if we want to avoid duplicating the information. There - are three different modes: - - - PROCINFO_DECL is defined. This means we are only interested in - declarations. - - - PROCINFO_DECL is not defined: - - + if SHARED is defined the file is included in an array - initializer. The .element = { ... } syntax is needed. - - + if SHARED is not defined a normal array initialization is - needed. - */ - -#ifndef PROCINFO_CLASS -# define PROCINFO_CLASS -#endif - -#if !IS_IN (ldconfig) -# if !defined PROCINFO_DECL && defined SHARED - ._dl_larch_cpu_features -# else -PROCINFO_CLASS struct cpu_features _dl_larch_cpu_features -# endif -# ifndef PROCINFO_DECL -= { } -# endif -# if !defined SHARED || defined PROCINFO_DECL -; -# else -, -# endif -#endif - -#undef PROCINFO_DECL -#undef PROCINFO_CLASS diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c b/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c deleted file mode 100644 index 455fd71abc..0000000000 --- a/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Operating system support for run-time dynamic linker. LoongArch version. - Copyright (C) 2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <config.h> -#include <sysdeps/loongarch/cpu-tunables.c> -#include <sysdeps/unix/sysv/linux/dl-sysdep.c> diff --git a/sysdeps/unix/sysv/linux/loongarch/libc-start.c b/sysdeps/unix/sysv/linux/loongarch/libc-start.c deleted file mode 100644 index f1346ece0a..0000000000 --- a/sysdeps/unix/sysv/linux/loongarch/libc-start.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Override csu/libc-start.c on LoongArch64. - Copyright (C) 2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef SHARED - -/* Mark symbols hidden in static PIE for early self relocation to work. */ -# if BUILD_PIE_DEFAULT -# pragma GCC visibility push(hidden) -# endif - -# include <ldsodefs.h> -# include <cpu-features.c> - -extern struct cpu_features _dl_larch_cpu_features; - -# define ARCH_INIT_CPU_FEATURES() init_cpu_features (&_dl_larch_cpu_features) - -#endif -#include <csu/libc-start.c> |