diff options
author | Harmen Stoppels <harmenstoppels@gmail.com> | 2023-09-11 19:45:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-11 10:45:53 -0700 |
commit | a0bd53148be23b598052b7851ca83ce35c3d7cfc (patch) | |
tree | e1165b568093dc1adaff4683b15156e2a10cc28b /var/spack/repos/builtin/packages/glibc/package.py | |
parent | 3302b176fd60c4a8e09726f70667af1f3172d5b7 (diff) | |
download | spack-a0bd53148be23b598052b7851ca83ce35c3d7cfc.tar.gz spack-a0bd53148be23b598052b7851ca83ce35c3d7cfc.tar.bz2 spack-a0bd53148be23b598052b7851ca83ce35c3d7cfc.tar.xz spack-a0bd53148be23b598052b7851ca83ce35c3d7cfc.zip |
glibc: fix deps, drop pre 2.17 (#39806)
* glibc: add missing deps, drop < 2.17
Building glibc 2.17 requires linking libgcc_{s,eh}.a, which themselves
depend on whatever glibc the current gcc uses for its runtime libraries.
Newer gcc depends on gnu extensions of libdl it seems, so that means you
simply cannot build old glibc with gcc-using-new-glibc.
The relevant fix in glibc is this commit:
commit 95f5a9a866695da4e038aa4e6ccbbfd5d9cf63b7
Author: Joseph Myers <joseph@codesourcery.com>
Date: Tue Jul 3 19:14:59 2012 +0000
Avoid use of libgcc_s and libgcc_eh when building glibc.
See also references to that commit in the glibc mailing list.
* update the gmake bound
* add --without-selinux
Diffstat (limited to 'var/spack/repos/builtin/packages/glibc/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/glibc/package.py | 61 |
1 files changed, 22 insertions, 39 deletions
diff --git a/var/spack/repos/builtin/packages/glibc/package.py b/var/spack/repos/builtin/packages/glibc/package.py index b0566f0427..38c568c9e4 100644 --- a/var/spack/repos/builtin/packages/glibc/package.py +++ b/var/spack/repos/builtin/packages/glibc/package.py @@ -44,17 +44,11 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage): version("2.19", sha256="18ad6db70724699d264add80b1f813630d0141cf3a3558b4e1a7c15f6beac796") version("2.18", sha256="c8e727b5feef883184241a4767725ec280c0288794bc5cd4432497370db47734") version("2.17", sha256="a3b2086d5414e602b4b3d5a8792213feb3be664ffc1efe783a829818d3fca37a") - version("2.16.0", sha256="a75be51658cc1cfb6324ec6dbdbed416526c44c14814823129f0fcc74c279f6e") - version("2.15", sha256="da6b95d14b722539c2ec02e7ae1221318dba3d27f19c098a882ffa71bb429c20") - version("2.14.1", sha256="f80c40897df49c463a6d5a45f734acbfe1bf42ef209a92a5c217aeb383631bdb") - version("2.13", sha256="bd90d6119bcc2898befd6e1bbb2cb1ed3bb1c2997d5eaa6fdbca4ee16191a906") - version("2.12.2", sha256="6b7392a7b339a3f2db6e4bc8d5418cf29116d9e7e36b313e845cb65e449c5346") - version("2.11.3", sha256="ddc3210f4029991f5142fda7f269f9bfb197917e5d9445ba2d90d31f74cc2765") - version("2.10.1", sha256="cd9743db33389e7b4eb2942a4f365d12fc015f115113b230152280c43ccc7e3f") - version("2.9", sha256="e0210dec2a4ca0a03d8ee26e2a4ebccc915d99f4cdb1489ff0f9f4ce7bda3e30") - version("2.8", sha256="a5b91339355a7bbafc5f44b524556f7f25de83dd56f2c00ef9240dabd6865663") - version("2.7", sha256="f5ef515cb70f8d4cfcee0b3aac05b73def60d897bdb7a71f4356782febfe415a") - version("2.6.1", sha256="6be7639ccad715d25eef560ce9d1637ef206fb9a162714f6ab8167fc0d971cae") + + # Spack commit 29aa7117f42f758bc537e03e4bedf66ced0accfa has older versions + # of glibc, but they are removed, because glibc < 2.17 links against + # libgcc_s and libgcc_eh, see glibc commit "Avoid use of libgcc_s and + # libgcc_eh when building glibc." 95f5a9a866695da4e038aa4e6ccbbfd5d9cf63b7 # Fix for newer GCC, related to -fno-common patch("locs.patch", when="@2.23:2.25") @@ -63,21 +57,9 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage): # _obstack_compat symbol is not initialized patch("39b1f61.patch", when="@:2.17") - # docs: install fails with "unknown command hsep / vsep" - patch("texi.patch", when="@2.16.0") - - # rpc/types.h include issue, should be from local version, not system. - patch("fb21f89.patch", when="@:2.16") - - # Use init_array (modified commit 4a531bb to unconditionally define - # NO_CTORS_DTORS_SECTIONS) - patch("4a531bb.patch", when="@:2.12") - - # make: mixed implicit and static pattern rules (trivial issue in docs) - patch("32cf406.patch", when="@:2.10") - - # linker flag output regex - patch("7c8a673.patch", when="@:2.9") + def setup_build_environment(self, env): + if self.spec.satisfies("@:2.21"): + env.append_flags("LDFLAGS", "-no-pie") def patch(self): # Support gmake >= 4 @@ -88,15 +70,13 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage): string=True, ) - # Suport gcc >= 5 + # Support gcc >= 10 filter_file( - "3.4* | 4.[0-9]* )", - "3.4* | 4.[0-9]* | [5-9].* | [1-9][0-9]*)", + "4.[3-9].* | 4.[1-9][0-9].* | [5-9].* )", + "4.[3-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9]*)", "configure", string=True, ) - - # Support gcc >= 10 filter_file( "4.[4-9].* | 4.[1-9][0-9].* | [5-9].* )", "4.[4-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9]*)", @@ -104,18 +84,20 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage): string=True, ) - # Support binutils - filter_file( - "2.1[3-9]*)", - "2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*)", - "configure", - string=True, - ) - depends_on("bison", type="build") depends_on("texinfo", type="build") depends_on("gettext", type="build") depends_on("perl", type="build") + depends_on("gawk", type="build") + depends_on("sed", type="build") + depends_on("gmake", type="build") + + # See 2d7ed98add14f75041499ac189696c9bd3d757fe + depends_on("gmake@:4.3", type="build", when="@:2.36") + + # From 2.29: generates locale/C-translit.h + # before that it's a test dependency. + depends_on("python@3.4:", type="build", when="@2.29:") depends_on("linux-headers") @@ -128,6 +110,7 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage): return [ "--enable-kernel=4.4.1", "--with-headers={}".format(self.spec["linux-headers"].prefix.include), + "--without-selinux", ] def build(self, spec, prefix): |