From a8510adeb1f4e230116181cee96a3a95fe2a146a0bc7c780bb3e86dbf90270d6 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 11 Dec 2017 09:00:01 +0000 Subject: [PATCH] Accepting request 555876 from home:Andreas_Schwab:Factory - glob64-s390.patch: no compat glob64 on s390 - noversion.tar.bz2: remove unused source - x86-64-dl-platform.patch: Don't set GLRO(dl_platform) to NULL (BZ #22299) OBS-URL: https://build.opensuse.org/request/show/555876 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=485 --- glibc-testsuite.changes | 11 +++ glibc-testsuite.spec | 19 ++-- glibc-utils.changes | 11 +++ glibc-utils.spec | 19 ++-- glibc.changes | 11 +++ glibc.spec | 21 +++-- glob64-s390.patch | 6 ++ noversion.tar.bz2 | 3 - x86-64-dl-platform.patch | 196 +++++++++++++++++++++++++++++++++++++++ 9 files changed, 272 insertions(+), 25 deletions(-) create mode 100644 glob64-s390.patch delete mode 100644 noversion.tar.bz2 create mode 100644 x86-64-dl-platform.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index fbb9718..c465744 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Nov 27 11:11:07 UTC 2017 - schwab@suse.de + +- glob64-s390.patch: no compat glob64 on s390 +- noversion.tar.bz2: remove unused source + +------------------------------------------------------------------- +Thu Oct 26 15:25:07 UTC 2017 - schwab@suse.de + +- x86-64-dl-platform.patch: Don't set GLRO(dl_platform) to NULL (BZ #22299) + ------------------------------------------------------------------- Thu Oct 26 08:40:52 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 117ed8a..9efcbde 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -147,7 +147,6 @@ Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring -Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf Source7: bindresvport.blacklist @@ -311,6 +310,10 @@ Patch1019: glob-tilde-overflow.patch Patch1020: dl-runtime-resolve-xsave.patch # PATCH-FIX-UPSTREAM posix: Fix improper assert in Linux posix_spawn (BZ #22273) Patch1021: spawni-assert.patch +# PATCH-FIX-UPSTREAM x86-64: Don't set GLRO(dl_platform) to NULL (BZ #22299) +Patch1022: x86-64-dl-platform.patch +# PATCH-FIX-UPSTREAM no compat glob64 on s390 +Patch1023: glob64-s390.patch ### # Patches awaiting upstream approval @@ -376,7 +379,7 @@ partially out of date. %package i18ndata Summary: Database Sources for 'locale' -License: GPL-2.0+ and MIT +License: GPL-2.0+ AND MIT Group: System/Libraries BuildArch: noarch @@ -388,7 +391,7 @@ created. %package locale Summary: Locale Data for Localized Programs -License: GPL-2.0+ and MIT and LGPL-2.1+ +License: GPL-2.0+ AND MIT AND LGPL-2.1+ Group: System/Libraries Requires(post): /bin/cat Requires: glibc = %{version} @@ -419,7 +422,7 @@ performance with NIS, NIS+, and LDAP. %package profile Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Requires: glibc = %{version} # bug437293 @@ -436,7 +439,7 @@ necessary for profiling and debugging. %package devel Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: BSD-3-Clause AND LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 Provides: epoll < 1.0 @@ -456,7 +459,7 @@ library. %package devel-static Summary: C library static libraries for -static linking -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: BSD-3-Clause AND LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier @@ -482,7 +485,7 @@ are not essential but recommend to use. makedb: A program to create a database for nss %prep -%setup -n glibc-%{version} -q -a 3 -a 4 +%setup -n glibc-%{version} -q -a 4 # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} @@ -543,6 +546,8 @@ rm nscd/s-stamp %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index fbb9718..c465744 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Nov 27 11:11:07 UTC 2017 - schwab@suse.de + +- glob64-s390.patch: no compat glob64 on s390 +- noversion.tar.bz2: remove unused source + +------------------------------------------------------------------- +Thu Oct 26 15:25:07 UTC 2017 - schwab@suse.de + +- x86-64-dl-platform.patch: Don't set GLRO(dl_platform) to NULL (BZ #22299) + ------------------------------------------------------------------- Thu Oct 26 08:40:52 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 3cee131..92a95ea 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -147,7 +147,6 @@ Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring -Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf Source7: bindresvport.blacklist @@ -311,6 +310,10 @@ Patch1019: glob-tilde-overflow.patch Patch1020: dl-runtime-resolve-xsave.patch # PATCH-FIX-UPSTREAM posix: Fix improper assert in Linux posix_spawn (BZ #22273) Patch1021: spawni-assert.patch +# PATCH-FIX-UPSTREAM x86-64: Don't set GLRO(dl_platform) to NULL (BZ #22299) +Patch1022: x86-64-dl-platform.patch +# PATCH-FIX-UPSTREAM no compat glob64 on s390 +Patch1023: glob64-s390.patch ### # Patches awaiting upstream approval @@ -376,7 +379,7 @@ partially out of date. %package i18ndata Summary: Database Sources for 'locale' -License: GPL-2.0+ and MIT +License: GPL-2.0+ AND MIT Group: System/Libraries BuildArch: noarch @@ -388,7 +391,7 @@ created. %package locale Summary: Locale Data for Localized Programs -License: GPL-2.0+ and MIT and LGPL-2.1+ +License: GPL-2.0+ AND MIT AND LGPL-2.1+ Group: System/Libraries Requires(post): /bin/cat Requires: glibc = %{version} @@ -419,7 +422,7 @@ performance with NIS, NIS+, and LDAP. %package profile Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Requires: glibc = %{version} # bug437293 @@ -436,7 +439,7 @@ necessary for profiling and debugging. %package devel Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: BSD-3-Clause AND LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 Provides: epoll < 1.0 @@ -456,7 +459,7 @@ library. %package devel-static Summary: C library static libraries for -static linking -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: BSD-3-Clause AND LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier @@ -482,7 +485,7 @@ are not essential but recommend to use. makedb: A program to create a database for nss %prep -%setup -n glibc-%{version} -q -a 3 -a 4 +%setup -n glibc-%{version} -q -a 4 # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} @@ -543,6 +546,8 @@ rm nscd/s-stamp %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glibc.changes b/glibc.changes index fbb9718..c465744 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Nov 27 11:11:07 UTC 2017 - schwab@suse.de + +- glob64-s390.patch: no compat glob64 on s390 +- noversion.tar.bz2: remove unused source + +------------------------------------------------------------------- +Thu Oct 26 15:25:07 UTC 2017 - schwab@suse.de + +- x86-64-dl-platform.patch: Don't set GLRO(dl_platform) to NULL (BZ #22299) + ------------------------------------------------------------------- Thu Oct 26 08:40:52 UTC 2017 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index af39f1a..8f36860 100644 --- a/glibc.spec +++ b/glibc.spec @@ -32,7 +32,7 @@ Name: glibc Summary: Standard Shared Libraries (from the GNU C Library) -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: System/Libraries # END INCLUDE glibc$flavor.spec.in @@ -153,7 +153,6 @@ Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring -Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf Source7: bindresvport.blacklist @@ -317,6 +316,10 @@ Patch1019: glob-tilde-overflow.patch Patch1020: dl-runtime-resolve-xsave.patch # PATCH-FIX-UPSTREAM posix: Fix improper assert in Linux posix_spawn (BZ #22273) Patch1021: spawni-assert.patch +# PATCH-FIX-UPSTREAM x86-64: Don't set GLRO(dl_platform) to NULL (BZ #22299) +Patch1022: x86-64-dl-platform.patch +# PATCH-FIX-UPSTREAM no compat glob64 on s390 +Patch1023: glob64-s390.patch ### # Patches awaiting upstream approval @@ -382,7 +385,7 @@ partially out of date. %package i18ndata Summary: Database Sources for 'locale' -License: GPL-2.0+ and MIT +License: GPL-2.0+ AND MIT Group: System/Libraries BuildArch: noarch @@ -394,7 +397,7 @@ created. %package locale Summary: Locale Data for Localized Programs -License: GPL-2.0+ and MIT and LGPL-2.1+ +License: GPL-2.0+ AND MIT AND LGPL-2.1+ Group: System/Libraries Requires(post): /bin/cat Requires: glibc = %{version} @@ -425,7 +428,7 @@ performance with NIS, NIS+, and LDAP. %package profile Summary: Libc Profiling and Debugging Versions -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Requires: glibc = %{version} # bug437293 @@ -442,7 +445,7 @@ necessary for profiling and debugging. %package devel Summary: Include Files and Libraries Mandatory for Development -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: BSD-3-Clause AND LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Obsoletes: epoll = 1.0 Provides: epoll < 1.0 @@ -462,7 +465,7 @@ library. %package devel-static Summary: C library static libraries for -static linking -License: BSD-3-Clause and LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ +License: BSD-3-Clause AND LGPL-2.1+ AND SUSE-LGPL-2.1+-with-GCC-exception AND GPL-2.0+ Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} # Provide Fedora name for package to make packaging easier @@ -488,7 +491,7 @@ are not essential but recommend to use. makedb: A program to create a database for nss %prep -%setup -n glibc-%{version} -q -a 3 -a 4 +%setup -n glibc-%{version} -q -a 4 # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} @@ -549,6 +552,8 @@ rm nscd/s-stamp %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 %patch2000 -p1 %patch2001 -p1 diff --git a/glob64-s390.patch b/glob64-s390.patch new file mode 100644 index 0000000..7278589 --- /dev/null +++ b/glob64-s390.patch @@ -0,0 +1,6 @@ +Index: glibc-2.26/sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c +=================================================================== +--- /dev/null ++++ glibc-2.26/sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c +@@ -0,0 +1 @@ ++/* No compat glob64 on s390. */ diff --git a/noversion.tar.bz2 b/noversion.tar.bz2 deleted file mode 100644 index bde0dd1..0000000 --- a/noversion.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c47b7dccf2d318f2e2144322e6a931c46a7507f0e77a64fed3623860e10c5ab -size 1833 diff --git a/x86-64-dl-platform.patch b/x86-64-dl-platform.patch new file mode 100644 index 0000000..70ba272 --- /dev/null +++ b/x86-64-dl-platform.patch @@ -0,0 +1,196 @@ +2017-10-26 Valery Reznic + H.J. Lu + + [BZ #22299] + * sysdeps/x86/cpu-features.c (init_cpu_features): Don't set + GLRO(dl_platform) to NULL. + * sysdeps/x86_64/Makefile (tests): Add tst-platform-1. + (modules-names): Add tst-platformmod-1 and + x86_64/tst-platformmod-2. + (CFLAGS-tst-platform-1.c): New. + (CFLAGS-tst-platformmod-1.c): Likewise. + (CFLAGS-tst-platformmod-2.c): Likewise. + (LDFLAGS-tst-platformmod-2.so): Likewise. + ($(objpfx)tst-platform-1): Likewise. + ($(objpfx)tst-platform-1.out): Likewise. + (tst-platform-1-ENV): Likewise. + ($(objpfx)x86_64/tst-platformmod-2.os): Likewise. + * sysdeps/x86_64/tst-platform-1.c: New file. + * sysdeps/x86_64/tst-platformmod-1.c: Likewise. + * sysdeps/x86_64/tst-platformmod-2.c: Likewise. + +Index: glibc-2.26/sysdeps/x86/cpu-features.c +=================================================================== +--- glibc-2.26.orig/sysdeps/x86/cpu-features.c ++++ glibc-2.26/sysdeps/x86/cpu-features.c +@@ -389,7 +389,6 @@ no_cpuid: + #endif + + /* Reuse dl_platform, dl_hwcap and dl_hwcap_mask for x86. */ +- GLRO(dl_platform) = NULL; + #if !HAVE_TUNABLES && defined SHARED + /* The glibc.tune.hwcap_mask tunable is initialized already, so no need to do + this. */ +@@ -400,13 +399,15 @@ no_cpuid: + GLRO(dl_hwcap) = HWCAP_X86_64; + if (cpu_features->kind == arch_kind_intel) + { ++ const char *platform = NULL; ++ + if (CPU_FEATURES_ARCH_P (cpu_features, AVX512F_Usable) + && CPU_FEATURES_CPU_P (cpu_features, AVX512CD)) + { + if (CPU_FEATURES_CPU_P (cpu_features, AVX512ER)) + { + if (CPU_FEATURES_CPU_P (cpu_features, AVX512PF)) +- GLRO(dl_platform) = "xeon_phi"; ++ platform = "xeon_phi"; + } + else + { +@@ -417,7 +418,7 @@ no_cpuid: + } + } + +- if (GLRO(dl_platform) == NULL ++ if (platform == NULL + && CPU_FEATURES_ARCH_P (cpu_features, AVX2_Usable) + && CPU_FEATURES_ARCH_P (cpu_features, FMA_Usable) + && CPU_FEATURES_CPU_P (cpu_features, BMI1) +@@ -425,7 +426,10 @@ no_cpuid: + && CPU_FEATURES_CPU_P (cpu_features, LZCNT) + && CPU_FEATURES_CPU_P (cpu_features, MOVBE) + && CPU_FEATURES_CPU_P (cpu_features, POPCNT)) +- GLRO(dl_platform) = "haswell"; ++ platform = "haswell"; ++ ++ if (platform != NULL) ++ GLRO(dl_platform) = platform; + } + #else + GLRO(dl_hwcap) = 0; +Index: glibc-2.26/sysdeps/x86_64/Makefile +=================================================================== +--- glibc-2.26.orig/sysdeps/x86_64/Makefile ++++ glibc-2.26/sysdeps/x86_64/Makefile +@@ -62,6 +62,21 @@ endif + + $(objpfx)tst-x86_64-1: $(objpfx)x86_64/tst-x86_64mod-1.so + ++ifneq (no,$(have-tunables)) ++tests += tst-platform-1 ++modules-names += tst-platformmod-1 x86_64/tst-platformmod-2 ++CFLAGS-tst-platform-1.c = -mno-avx ++CFLAGS-tst-platformmod-1.c = -mno-avx ++CFLAGS-tst-platformmod-2.c = -mno-avx ++LDFLAGS-tst-platformmod-2.so = -Wl,-soname,tst-platformmod-2.so ++$(objpfx)tst-platform-1: $(objpfx)tst-platformmod-1.so ++$(objpfx)tst-platform-1.out: $(objpfx)x86_64/tst-platformmod-2.so ++# Turn off AVX512F_Usable and AVX2_Usable so that GLRO(dl_platform) is ++# always set to x86_64. ++tst-platform-1-ENV = LD_PRELOAD=$(objpfx)\$$PLATFORM/tst-platformmod-2.so \ ++ GLIBC_TUNABLES=glibc.tune.hwcaps=-AVX512F_Usable,-AVX2_Usable ++endif ++ + tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 \ + tst-audit10 tst-sse tst-avx tst-avx512 + test-extras += tst-audit4-aux tst-audit10-aux \ +@@ -143,3 +158,8 @@ do-tests-clean common-mostlyclean: tst-x + .PHONY: tst-x86_64-1-clean + tst-x86_64-1-clean: + -rm -rf $(objpfx)x86_64 ++ ++$(objpfx)x86_64/tst-platformmod-2.os: $(objpfx)tst-platformmod-2.os ++ $(make-target-directory) ++ rm -f $@ ++ ln $< $@ +Index: glibc-2.26/sysdeps/x86_64/tst-platform-1.c +=================================================================== +--- /dev/null ++++ glibc-2.26/sysdeps/x86_64/tst-platform-1.c +@@ -0,0 +1,29 @@ ++/* Test PRELOAD with $PLATFORM. ++ Copyright (C) 2017 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 ++ ++extern int preload (void); ++ ++static int ++do_test (void) ++{ ++ return preload () == 0x1234 ? EXIT_SUCCESS : EXIT_FAILURE; ++} ++ ++#include +Index: glibc-2.26/sysdeps/x86_64/tst-platformmod-1.c +=================================================================== +--- /dev/null ++++ glibc-2.26/sysdeps/x86_64/tst-platformmod-1.c +@@ -0,0 +1,23 @@ ++/* Test PRELOAD with $PLATFORM. ++ Copyright (C) 2017 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 ++preload (void) ++{ ++ return 0; ++} +Index: glibc-2.26/sysdeps/x86_64/tst-platformmod-2.c +=================================================================== +--- /dev/null ++++ glibc-2.26/sysdeps/x86_64/tst-platformmod-2.c +@@ -0,0 +1,23 @@ ++/* Test PRELOAD with $PLATFORM. ++ Copyright (C) 2017 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 ++preload (void) ++{ ++ return 0x1234; ++}