Commit Graph

86 Commits

Author SHA1 Message Date
Rich Felker 678797f062 fix fdpic regressions in gcc 10 and later
these were added when arm fdpic support was upstreamed in gcc. one patch
was just entirely wrong (broke arm init/fini arrays, gcc pr#114158) and
the other put arm-specific unwind logic in place for all fdpic targets
and broke building of the unwinder code.
2024-03-13 18:13:07 -04:00
Rich Felker 91bdb320f1 fix cowpatch issue with libstdc++-v3 directory in gcc
this directory uses relative pathnames to access libgcc unwind
headers, but with cowpatch, those are relative to the libstdc++-v3
directory in the unpatched tree unless libstdc++-v3 has been
cow-split.

this calls for a general solution at some point, but for now, just add
an explicit dummy patch to trigger cow splitting.
2024-03-13 18:13:07 -04:00
rofl0r fe915821b6 bump gcc 11.1.0 to 11.2.0 2022-04-15 15:56:08 -04:00
Szabolcs Nagy 64649ce72d add gcc-11.1.0 hash and patches 2022-04-15 15:56:08 -04:00
rofl0r 0f22991b8d update linux-headers to 4.19.88-1
the new release adds support for m68k and s390x archs.
2021-09-11 21:05:46 -04:00
Szabolcs Nagy 620d5d1564 add gcc-10.3.0 hash and patches 2021-09-08 20:59:41 +00:00
Rich Felker 5b405688ee add gcc patches for powerpc-spe musl dynamic linker name
spe uses -sf abi
2021-07-05 14:49:24 -04:00
Rich Felker 7600764f17 add gcc 8.x patch for powerpc-spe support
gcc 8 split this out into a separate config dir, but the files there
are old bitrotted ones without musl support.
2021-06-25 17:48:30 -04:00
Rich Felker 30454c5887 add big-hammer patch for GCC bug 95189
this is a critical wrong-codegen bug in gcc 9 and 10 that can have
security impact, and oddly the fix still does not seem to have been
backported, so just disable builtin memcmp expansion entirely until
there's a known-good fix.
2021-06-23 21:53:57 -04:00
rofl0r aec25e57eb add GCC 9.4.0
0017-pr93402.diff was dropped, as it was merged upstream.
2021-06-23 21:53:57 -04:00
rofl0r c4c5b49efa update GCC 8.3.0 to 8.5.0
0017-pr93402.diff was removed, as it was merged upstream.
2021-06-23 21:53:57 -04:00
rofl0r f442c9178b replace GCC 7.3.0 with 7.5.0 2021-06-23 20:19:07 -04:00
Rich Felker b12ded5078 add linux-5.8.5 headers support 2020-10-01 15:15:30 -04:00
Rich Felker b29ed1829e update gcc futex time64 patch for compat with riscv32
riscv32 will define both syscalls but with equal value, and long will
not be the right timespec member type.
2020-09-23 17:56:47 -04:00
Rich Felker 531af98526 improve m68k sqrt patch not to suppress insn on archs where it works
the 60840 fpu and later, and coldfire fpus, have precision-specific
sqrt instructions that get used and do the right thing. only when
targeting baseline (or near-baseline) ISA does the ld80-only
instruction get used, and that's all that needs to be suppressed.
2020-07-02 12:22:13 -04:00
Rich Felker d04fb4943f add patch fixing broken m68k sqrt
gcc pr 95921. the m68k sqrt rtl handles excess precision wrong. I
couldn't figure out how to make gcc generate the insn only for long
double, but since long double usage is rare anyway, just remove it.
this can be replaced with a proper fix later if there's ever one
upstream.
2020-06-30 16:35:55 -04:00
Rich Felker d6ded50dd7 add patch to disable arm vdso in musl 1.2.0
reportedly the vdso version of clock_gettime64 produces erratic
results on arm with linux 5.6, and earlier versions did not have the
vdso function at all. it's not clear what the eventual upstream
solution will be, but something needs to be done so as not to be
producing binaries that seem to work now but will break fantastically
when moving to newer kernels.
2020-04-26 14:05:29 -04:00
Rich Felker b49456e19a fix gcc 8+ static pie patches to make -static-pie pass -static to ld
previously this was missed because there's target-specific spec magic
for a few targets to do it, but many including arm don't have it.
without this, use of -static-pie produces broken binaries which lack
an interpreter but link to shared libraries on the targets affected.

use of -static -pie (preferred form) is not affected. gcc versions
prior to 8.x did not have -static-pie (because there was no upstream
static pie support) so this patch is only needed for 8+, and only to
prevent breakage if someone uses the -static-pie option instead of
-static with -pie.
2020-02-10 12:18:24 -05:00
Rich Felker 9515af5143 add binutils patches for pr22269
needed to fix static pie linking bugs on arm.
2020-01-31 16:33:42 -05:00
Rich Felker 3cfbdabfd6 add asound uapi patches for linux 4.19.90, headers-4.19.88
these are needed for time64 compatibility, and are backported from the
y2038-endgame kernel branch and squashed with non-uapi changes
removed.

with just these patches applied the kernel will not build since
changes at the source level are also needed. but it is not practical
to backport source changes to an old kernel, and even if it were, it
would not make sense to include irrelevant changes that need rebasing
in a patchset intended only for the purpose of uapi header
installation.
2020-01-30 22:11:51 -05:00
Rich Felker 6a73704be3 re-add archscripts removal patch for linux 4.19.90
forward-ported from the now-removed 4.4.10 patch, needed to fix #8,
spurious dependency on host elf.h header. I checked x86 and mips which
seem to be the only archs with archscripts rules, and these rules have
nothing to do with building headers, so omitting them should still be
safe.
2020-01-30 22:09:15 -05:00
Rich Felker 1645ae3476 remove support for old linux headers
these can no longer be supported since they are incompatible with
time64.
2020-01-30 22:08:34 -05:00
Rich Felker 03d6d755c7 add patch fixing gcc pr93402 (wrong codegen)
affects all gcc versions 6.x and later. same patch works for all.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93402
2020-01-23 19:38:39 -05:00
Rich Felker 3d26f0cf02 add binutils 2.33.1
included are new or1k support patches that are not easily backported
to earlier versions.
2020-01-22 00:02:12 -05:00
Rich Felker 49f489e5c6 remove support for non-latest versions in gcc 6 and 7 series 2020-01-21 19:39:04 -05:00
Rich Felker 431a47af9e add gcc patch fixing libstdc++ futex use for time64 compatibility
this is not the cleanest fix but should at least make it non-broken.
2020-01-21 00:07:40 -05:00
Rich Felker 52527c462f add patch fixing copy relocs issue on riscv
this is binutils issue 23825, but it's caused by gcc using local-exec
model rather than initial-exec model with the intent of making
binutils generate copy relocations. this is harmful, unnecessary, and
not presently supported by musl (and probably should never be). patch
taken from https://github.com/riscv/riscv-gcc/pull/118.
2019-11-19 08:50:58 -05:00
Andrew Chambers a9a3b3aee2 Remove absolute references to pwd in linux headers.
Some distributions don't have pwd at this path.
2019-11-10 20:26:27 -05:00
Rich Felker 90ecfe079b renumber latest gcc 8.3.0 patch so as not to duplicate numbering 2019-11-10 20:19:00 -05:00
Rich Felker 9e06392a64 add gcc 9.2.0 hash and patches
patches from Szabolcs Nagy's patchset, carried forward from 8.x with
minimal changes, with #0014 added from recent additions not reflected.
2019-11-10 20:13:42 -05:00
Rich Felker 02be46d639 add patches fixing ld bug linking arm tlsdesc relocs on 64-bit host
this is binutils issue #25062. without it, cross-ld crashes linking
arm programs using tlsdesc if the host is 64-bit.
2019-10-06 23:36:25 -04:00
Rich Felker 684cb17061 update arm static pie TLS relocs patch to upstream version, backport
commit c9ac08753a omitted a few changes,
resulting in spurious NONE-type relocs and possibly other problems.
update patches to match upstream fix.
2019-10-06 20:47:22 -04:00
Rich Felker c9ac08753a add binutils patch to fix broken arm LD/GD TLS relocs in static PIE
this is the same issue fixed for mips in 0004-mips-pie-tls.diff for
2.27, upstream in 2.32.
2019-10-02 10:44:20 -04:00
Rich Felker 5fd2126e13 add patches fixing broken libgcc multi-thread detection via weak refs
tested to apply successfully to all supported gcc versions except
possibly 4.2.1, for which it is not added yet.
2019-09-24 19:19:23 -04:00
Rich Felker 629189831f add binutils 2.32 hash and patches 2019-05-26 15:23:16 -04:00
Rich Felker 1878d65cbe add gcc 8.3.0 hash and patches 2019-05-26 15:22:55 -04:00
rofl0r fa132e0104 binutils 2.27: add patch so reproducible builds work even on mips 2019-04-11 18:57:51 -04:00
rofl0r 7ea487218f add support for GCC 6.5.0
new patch: 0017-c++-abi-break.diff fixes a C++ ABI break regression.
0010-static-pie-support.diff was removed as it doesn't apply anymore,
and forward-porting it requires arcane knowledge of GCC details.

the patches 0018 and 0019 have been copied from GCC 7.3.0. the static
pie patch from GCC 6.4.0, renumbered 0020, depends on the reversions
they make.
2019-02-12 19:40:33 -05:00
rofl0r edc9d8e2f0 fix file extension of 2 patches
closes #54
2018-11-02 23:34:29 -04:00
rofl0r 474a7e06c0 GCC 5.3.0: fix filenames in 0008-shsibcall.diff
as reported in #15, some patch programs choke on the comments after
the filename...
2018-10-31 19:11:37 +00:00
Rich Felker e3e354f63a add patches to fix invalid tls-model usage in gcc target libs
the initial-exec tls model is not valid in any code that might be
dynamically loaded. it usually happens to work on glibc because glibc
reserves some static tls space for late-loaded libraries that need it,
but if it's already been exhausted that will fail. musl does not
support this hack at all, and it's not valid for gcc target libs to be
doing it anywhere, so patch it out entirely rather than just for musl.
2018-09-25 13:52:59 -04:00
Rich Felker b0d7c70efe move support for non-latest versions in gcc 5 and 6 series
this is to prevent unbounded growth of patch sets to be maintained
and backported to.
2018-09-25 13:50:37 -04:00
Szabolcs Nagy c8a05936f0 add gcc-7.3.0 patches 2018-07-11 16:12:22 -04:00
Rich Felker 58da30d441 add m68k support patches for all currently supported gcc versions
these are not complete/correct in that they do not account for ABI
variants (softfloat and coldfire fpu) in the dynamic linker name, but
I was unable to get gcc's configure to accept --with-float=soft on
m68k to test softfloat and begin figuring out how to do the spec
logic. at some point this needs to be figured out and completed, but
at least the default ABI is available in mcm now.
2018-06-21 15:30:04 -04:00
rofl0r ab0c081d13 add support for GCC 6.4.0
GCC 6.4.0 has one big advantage over 6.3.0: it is shipped as .tar.xz,
shaving 30 MB from its download size, and also considerably speeding
up the extraction process.

All patches are copies of the GCC 6.3.0 ones, except
0004-posix_memalign.diff which was rebased to apply cleanly.
0014-ubsan-empty-string-fix.diff was removed, since it was upstreamed.
2018-05-07 22:21:02 -04:00
Rich Felker 030b83f3a8 add binutils patches fixing mips tls reloc output when linking pie
the linker was wrongly leaving dynamic relocations for GD-model TLS
defined in the main program when linking the main program as PIE. this
was only suboptimal for dynamic pie, but for static pie it resulted in
runtime failure since there is no dynamic linker to resolve the DTPMOD
reference.

this has been reported as binutils bug #22570.
2018-01-31 12:26:40 -05:00
Patrick Oppenlander 9c4ba81399 add support for gcc 7.2.0 2017-10-19 19:48:01 -04:00
Rich Felker 48d9c59d22 fix compiling gcc 6.3.0 with strict c++ compilers
this patch is a backport of gcc revision 239971 to gcc 6.3.0.

submitted by osvein as PR#35.
2017-10-19 19:30:05 -04:00
Rich Felker 458feff9b0 add patch fixing static linking bug with gotoff relocs on microblaze 2017-01-02 15:52:21 -05:00
Rich Felker 7db01153a2 add patch fixing broken microblaze gcc on 32-bit hosts
bogus use PRIx64 with unsigned long (assumption of 64-bit host) in
gcc. older gcc versions are also affected, I think, but not yet fixed.
2017-01-02 15:15:42 -05:00