From d1e99744ff1e06214254e10dca4768698317d438 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Mar 24 2021 01:32:19 +0000 Subject: Apply patch glibc-rh1817513-30.patch patch_name: glibc-rh1817513-30.patch present_in_specfile: true location_in_specfile: 431 --- diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile index 7ac6fa5..6ad69e9 100644 --- a/sysdeps/mips/Makefile +++ b/sysdeps/mips/Makefile @@ -82,3 +82,10 @@ $(objpfx)tst-mode-switch-2: $(shared-thread-library) endif endif endif + +ifeq ($(subdir),elf) +tests += tst-undefined-weak +modules-names += tst-undefined-weak-lib + +$(objpfx)tst-undefined-weak: $(objpfx)tst-undefined-weak-lib.so +endif diff --git a/sysdeps/mips/tst-undefined-weak-lib.S b/sysdeps/mips/tst-undefined-weak-lib.S new file mode 100644 index 0000000..a175ebf --- /dev/null +++ b/sysdeps/mips/tst-undefined-weak-lib.S @@ -0,0 +1,43 @@ +/* Undefined weak symbol loading shared module. + Copyright (C) 2019 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 + . */ + +#include + + .text + .globl x + .set nomips16 + .set nomicromips + .ent x + .type x, @function +x: + .set noreorder +#if _MIPS_SIM == _ABIO32 + .cpload $25 + jr $31 + lb $2,%got(a)($28) +#else + .cpsetup $25,$24,x + lb $2,%got_disp(a)($28) + jr $31 + .cpreturn +#endif + .set reorder + .end x + .size x, .-x + .weak a + .hidden a diff --git a/sysdeps/mips/tst-undefined-weak.c b/sysdeps/mips/tst-undefined-weak.c new file mode 100644 index 0000000..1231da6 --- /dev/null +++ b/sysdeps/mips/tst-undefined-weak.c @@ -0,0 +1,28 @@ +/* Undefined weak symbol loading main executable. + Copyright (C) 2019 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 + . */ + +int *x (void); + +int +do_test (void) +{ + x (); + return 0; +} + +#include diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h index 68a0a99..d2912ca 100644 --- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h +++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h @@ -34,7 +34,7 @@ extern void _dl_static_init (struct link_map *map); #undef VALID_ELF_ABIVERSION #define VALID_ELF_ABIVERSION(osabi,ver) \ (ver == 0 \ - || (osabi == ELFOSABI_SYSV && ver < 4) \ + || (osabi == ELFOSABI_SYSV && ver < 5) \ || (osabi == ELFOSABI_GNU && ver < LIBC_ABI_MAX)) #endif /* ldsodefs.h */