diff --git a/L/libjulia/build_tarballs.jl b/L/libjulia/build_tarballs.jl index 5c9569f0993..0dd67ac0b70 100644 --- a/L/libjulia/build_tarballs.jl +++ b/L/libjulia/build_tarballs.jl @@ -31,7 +31,7 @@ function Pkg.Types.is_stdlib(uuid::Base.UUID, julia_version::VersionNumber) return false end -jllversion=v"1.10.8" +jllversion=v"1.10.9" for ver in julia_full_versions build_julia(ARGS, ver; jllversion) end diff --git a/L/libjulia/bundled/patches/1.10.0/loader_trampolines.patch b/L/libjulia/bundled/patches/1.10.0/loader_trampolines.patch new file mode 100644 index 00000000000..cc768b75f7b --- /dev/null +++ b/L/libjulia/bundled/patches/1.10.0/loader_trampolines.patch @@ -0,0 +1,38 @@ +From 286b7ba8a36fbe0ea29c599f629dfa7e6b855133 Mon Sep 17 00:00:00 2001 +From: Max Horn +Date: Thu, 22 Feb 2024 17:42:02 +0100 +Subject: [PATCH] Add debug variant of loader_trampolines.o + +This prevents a race condition when building 'julia-cli-debug +julia-cli-release' simultaneously (as we do for libjulia_jll, and +also generally seems appropriate given what is done for all other +source files. +--- + cli/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/cli/Makefile b/cli/Makefile +index c72ebff2b9..4e32c53b9a 100644 +--- a/cli/Makefile ++++ b/cli/Makefile +@@ -48,7 +48,7 @@ LIB_DOBJS := $(BUILDDIR)/loader_lib.dbg.obj + # If this is an architecture that supports dynamic linking, link in a trampoline definition + ifneq (,$(wildcard $(SRCDIR)/trampolines/trampolines_$(ARCH).S)) + LIB_OBJS += $(BUILDDIR)/loader_trampolines.o +-LIB_DOBJS += $(BUILDDIR)/loader_trampolines.o ++LIB_DOBJS += $(BUILDDIR)/loader_trampolines.dbg.obj + endif + + default: release +@@ -65,6 +65,8 @@ $(BUILDDIR)/loader_exe.dbg.obj : $(SRCDIR)/loader_exe.c $(HEADERS) $(JULIAHOME)/ + @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(LOADER_CFLAGS) -c $< -o $@) + $(BUILDDIR)/loader_trampolines.o : $(SRCDIR)/trampolines/trampolines_$(ARCH).S $(HEADERS) $(SRCDIR)/trampolines/common.h + @$(call PRINT_CC, $(CC) $(SHIPFLAGS) $(LOADER_CFLAGS) $< -c -o $@) ++$(BUILDDIR)/loader_trampolines.dbg.obj : $(SRCDIR)/trampolines/trampolines_$(ARCH).S $(HEADERS) $(SRCDIR)/trampolines/common.h ++ @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(LOADER_CFLAGS) $< -c -o $@) + + # Debugging target to help us see what kind of code is being generated for our trampolines + dump-trampolines: $(SRCDIR)/trampolines/trampolines_$(ARCH).S +-- +2.43.2 + diff --git a/L/libjulia/bundled/patches/1.11.0-DEV/52437.patch b/L/libjulia/bundled/patches/1.11.0-DEV/52437.patch deleted file mode 100644 index 702acd99189..00000000000 --- a/L/libjulia/bundled/patches/1.11.0-DEV/52437.patch +++ /dev/null @@ -1,453 +0,0 @@ -From f0ff1f1b921dd189ae106647436084b082d9c4c5 Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Wed, 6 Dec 2023 22:21:41 -0500 -Subject: [PATCH 1/8] Update crc32c.c register constraints - ---- - src/crc32c.c | 34 ++++++++++++++++++---------------- - 1 file changed, 18 insertions(+), 16 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index 844a6e34156e6..d7e7e3f71d557 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -114,14 +114,15 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + LONG; - do { -- __asm__(CRC32_PTR "\t" "(%3), %0\n\t" -- CRC32_PTR "\t" LONGx1 "(%3), %1\n\t" -- CRC32_PTR "\t" LONGx2 "(%3), %2" -- : "+r"(crc0), "+r"(crc1), "+r"(crc2) -- : "r"(buf), -- "m"(* (const char (*)[sizeof(void*)]) &buf[0]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[LONG]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); -+ __asm__(CRC32_PTR "\t" "(%1), %0" -+ : "+r"(crc0), -+ : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -+ __asm__(CRC32_PTR "\t" LONGx1 "(%1), %0" -+ : "+r"(crc1), -+ : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG])); -+ __asm__(CRC32_PTR "\t" LONGx2 "(%1), %0" -+ : "+r"(crc2), -+ : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_long, crc0) ^ crc1; -@@ -137,14 +138,15 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + SHORT; - do { -- __asm__(CRC32_PTR "\t" "(%3), %0\n\t" -- CRC32_PTR "\t" SHORTx1 "(%3), %1\n\t" -- CRC32_PTR "\t" SHORTx2 "(%3), %2" -- : "+r"(crc0), "+r"(crc1), "+r"(crc2) -- : "r"(buf), -- "m"(* (const char (*)[sizeof(void*)]) &buf[0]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); -+ __asm__(CRC32_PTR "\t" "(%1), %0" -+ : "+r"(crc0), -+ : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -+ __asm__(CRC32_PTR "\t" SHORTx1 "(%1), %0" -+ : "+r"(crc1), -+ : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); -+ __asm__(CRC32_PTR "\t" SHORTx2 "(%1), %0" -+ : "+r"(crc2), -+ : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_short, crc0) ^ crc1; - -From 023e798c627227f8f70499bb6c6b1d12ea3edf78 Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Wed, 6 Dec 2023 22:24:58 -0500 -Subject: [PATCH 2/8] fix - ---- - src/crc32c.c | 19 +++++++------------ - 1 file changed, 7 insertions(+), 12 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index d7e7e3f71d557..9f772d7e008e0 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -56,14 +56,9 @@ - #define POLY 0x82f63b78 - - /* Block sizes for three-way parallel crc computation. LONG and SHORT must -- both be powers of two. The associated string constants must be set -- accordingly, for use in constructing the assembler instructions. */ -+ both be powers of two. */ - #define LONG 8192 --#define LONGx1 "8192" --#define LONGx2 "16384" - #define SHORT 256 --#define SHORTx1 "256" --#define SHORTx2 "512" - - #ifndef GEN_CRC32C_TABLES - #include "crc32c-tables.c" -@@ -114,13 +109,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + LONG; - do { -- __asm__(CRC32_PTR "\t" "(%1), %0" -+ __asm__(CRC32_PTR "\t(%1), %0" - : "+r"(crc0), - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -- __asm__(CRC32_PTR "\t" LONGx1 "(%1), %0" -+ __asm__(CRC32_PTR "\t(%1), %0" - : "+r"(crc1), - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG])); -- __asm__(CRC32_PTR "\t" LONGx2 "(%1), %0" -+ __asm__(CRC32_PTR "\t(%1), %0" - : "+r"(crc2), - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); -@@ -138,13 +133,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + SHORT; - do { -- __asm__(CRC32_PTR "\t" "(%1), %0" -+ __asm__(CRC32_PTR "\t(%1), %0" - : "+r"(crc0), - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -- __asm__(CRC32_PTR "\t" SHORTx1 "(%1), %0" -+ __asm__(CRC32_PTR "\t(%1), %0" - : "+r"(crc1), - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); -- __asm__(CRC32_PTR "\t" SHORTx2 "(%1), %0" -+ __asm__(CRC32_PTR "\t(%1), %0" - : "+r"(crc2), - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - -From 7f6271fe6246a1d58bf1f70e3707404cb636722d Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Fri, 8 Dec 2023 17:10:20 -0500 -Subject: [PATCH 3/8] rm commas - ---- - src/crc32c.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index 9f772d7e008e0..36cc9b97e986d 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -110,13 +110,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - const char *end = buf + LONG; - do { - __asm__(CRC32_PTR "\t(%1), %0" -- : "+r"(crc0), -+ : "+r"(crc0) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); - __asm__(CRC32_PTR "\t(%1), %0" -- : "+r"(crc1), -+ : "+r"(crc1) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG])); - __asm__(CRC32_PTR "\t(%1), %0" -- : "+r"(crc2), -+ : "+r"(crc2) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); - } while (buf < end); -@@ -134,13 +134,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - const char *end = buf + SHORT; - do { - __asm__(CRC32_PTR "\t(%1), %0" -- : "+r"(crc0), -+ : "+r"(crc0) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); - __asm__(CRC32_PTR "\t(%1), %0" -- : "+r"(crc1), -+ : "+r"(crc1) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); - __asm__(CRC32_PTR "\t(%1), %0" -- : "+r"(crc2), -+ : "+r"(crc2) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - } while (buf < end); - -From fc0df9dfec8656fedb039bffe80b8ea453baeabb Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Fri, 8 Dec 2023 20:25:36 -0500 -Subject: [PATCH 4/8] Update crc32c.c - ---- - src/crc32c.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index 36cc9b97e986d..32a19d6115083 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -109,13 +109,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + LONG; - do { -- __asm__(CRC32_PTR "\t(%1), %0" -+ __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc0) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -- __asm__(CRC32_PTR "\t(%1), %0" -+ __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc1) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG])); -- __asm__(CRC32_PTR "\t(%1), %0" -+ __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc2) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); -@@ -133,13 +133,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + SHORT; - do { -- __asm__(CRC32_PTR "\t(%1), %0" -+ __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc0) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -- __asm__(CRC32_PTR "\t(%1), %0" -+ __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc1) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); -- __asm__(CRC32_PTR "\t(%1), %0" -+ __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc2) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - -From 3c495cae4da6c598d7f42b5dbeea1caccbfee34c Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Fri, 8 Dec 2023 20:26:59 -0500 -Subject: [PATCH 5/8] Update crc32c.c - ---- - src/crc32c.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index 32a19d6115083..464fe63499faa 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -113,10 +113,10 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - : "+r"(crc0) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); - __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc1) -+ : "+r"(crc1) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG])); - __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc2) -+ : "+r"(crc2) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); - } while (buf < end); -@@ -137,10 +137,10 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - : "+r"(crc0) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); - __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc1) -+ : "+r"(crc1) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); - __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc2) -+ : "+r"(crc2) - : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - } while (buf < end); - -From fc02d992775fc0bcb7d374d5a4475746c339d228 Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Fri, 8 Dec 2023 23:59:11 -0500 -Subject: [PATCH 6/8] rm -> m - ---- - src/crc32c.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index 464fe63499faa..b2898f957af49 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -95,9 +95,9 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - /* compute the crc for up to seven leading bytes to bring the data pointer - to an eight-byte boundary */ - while (len && ((uintptr_t)buf & 7) != 0) { -- __asm__("crc32b\t" "(%1), %0" -+ __asm__("crc32b\t" "%1, %0" - : "+r"(crc0) -- : "r"(buf), "m"(*buf)); -+ : "m"(*buf)); - buf++; - len--; - } -@@ -111,13 +111,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - do { - __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc0) -- : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[0])); - __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc1) -- : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG])); -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[LONG])); - __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc2) -- : "rm"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_long, crc0) ^ crc1; -@@ -135,13 +135,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - do { - __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc0) -- : "rm"(* (const char (*)[sizeof(void*)]) &buf[0])); -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[0])); - __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc1) -- : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); - __asm__(CRC32_PTR "\t%1, %0" - : "+r"(crc2) -- : "rm"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_short, crc0) ^ crc1; -@@ -154,18 +154,18 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - block */ - const char *end = buf + (len - (len & 7)); - while (buf < end) { -- __asm__(CRC32_PTR "\t" "(%1), %0" -+ __asm__(CRC32_PTR "\t" "%1, %0" - : "+r"(crc0) -- : "r"(buf), "m"(* (const char (*)[sizeof(void*)]) buf)); -+ : "m"(* (const char (*)[sizeof(void*)]) buf)); - buf += sizeof(void*); - } - len &= 7; - - /* compute the crc for up to seven trailing bytes */ - while (len) { -- __asm__("crc32b\t" "(%1), %0" -+ __asm__("crc32b\t" "%1, %0" - : "+r"(crc0) -- : "r"(buf), "m"(*buf)); -+ : "m"(*buf)); - buf++; - len--; - } - -From 664ec684c4ceab1b8bcbb605aeed2a79c9130270 Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Sat, 9 Dec 2023 00:04:45 -0500 -Subject: [PATCH 7/8] simplification - ---- - src/crc32c.c | 32 ++++++++++++++------------------ - 1 file changed, 14 insertions(+), 18 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index b2898f957af49..a638b2efcf1cd 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -109,15 +109,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + LONG; - do { -- __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc0) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[0])); -- __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc1) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[LONG])); -- __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc2) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); -+ __asm__(CRC32_PTR "\t%3, %0\n\t" -+ CRC32_PTR "\t%4, %1\n\t" -+ CRC32_PTR "\t%5, %2" -+ : "+r"(crc0), "+r"(crc1), "+r"(crc2) -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[0]), -+ "m"(* (const char (*)[sizeof(void*)]) &buf[LONG]), -+ "m"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_long, crc0) ^ crc1; -@@ -133,15 +131,13 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - uintptr_t crc2 = 0; - const char *end = buf + SHORT; - do { -- __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc0) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[0])); -- __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc1) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT])); -- __asm__(CRC32_PTR "\t%1, %0" -- : "+r"(crc2) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); -+ __asm__(CRC32_PTR "\t%3, %0\n\t" -+ CRC32_PTR "\t%4, %1\n\t" -+ CRC32_PTR "\t%5, %2" -+ : "+r"(crc0), "+r"(crc1), "+r"(crc2) -+ : "m"(* (const char (*)[sizeof(void*)]) &buf[0]), -+ "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT]), -+ "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_short, crc0) ^ crc1; - -From 5193f10ce4536e1fdb39de6209d9c643526e0d14 Mon Sep 17 00:00:00 2001 -From: "Steven G. Johnson" -Date: Sat, 9 Dec 2023 00:09:12 -0500 -Subject: [PATCH 8/8] simplify pointer cast to const uintptr_t * - ---- - src/crc32c.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/crc32c.c b/src/crc32c.c -index a638b2efcf1cd..b38f9d6c0e765 100644 ---- a/src/crc32c.c -+++ b/src/crc32c.c -@@ -113,9 +113,9 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - CRC32_PTR "\t%4, %1\n\t" - CRC32_PTR "\t%5, %2" - : "+r"(crc0), "+r"(crc1), "+r"(crc2) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[0]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[LONG]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[LONG*2])); -+ : "m"(* (const uintptr_t *) &buf[0]), -+ "m"(* (const uintptr_t *) &buf[LONG]), -+ "m"(* (const uintptr_t *) &buf[LONG*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_long, crc0) ^ crc1; -@@ -135,9 +135,9 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - CRC32_PTR "\t%4, %1\n\t" - CRC32_PTR "\t%5, %2" - : "+r"(crc0), "+r"(crc1), "+r"(crc2) -- : "m"(* (const char (*)[sizeof(void*)]) &buf[0]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT]), -- "m"(* (const char (*)[sizeof(void*)]) &buf[SHORT*2])); -+ : "m"(* (const uintptr_t *) &buf[0]), -+ "m"(* (const uintptr_t *) &buf[SHORT]), -+ "m"(* (const uintptr_t *) &buf[SHORT*2])); - buf += sizeof(void*); - } while (buf < end); - crc0 = crc32c_shift(crc32c_short, crc0) ^ crc1; -@@ -152,7 +152,7 @@ static uint32_t crc32c_sse42(uint32_t crc, const char *buf, size_t len) - while (buf < end) { - __asm__(CRC32_PTR "\t" "%1, %0" - : "+r"(crc0) -- : "m"(* (const char (*)[sizeof(void*)]) buf)); -+ : "m"(* (const uintptr_t *) buf)); - buf += sizeof(void*); - } - len &= 7; diff --git a/L/libjulia/bundled/patches/1.11.0-DEV/loader_trampolines.patch b/L/libjulia/bundled/patches/1.11.0-DEV/loader_trampolines.patch new file mode 100644 index 00000000000..cc768b75f7b --- /dev/null +++ b/L/libjulia/bundled/patches/1.11.0-DEV/loader_trampolines.patch @@ -0,0 +1,38 @@ +From 286b7ba8a36fbe0ea29c599f629dfa7e6b855133 Mon Sep 17 00:00:00 2001 +From: Max Horn +Date: Thu, 22 Feb 2024 17:42:02 +0100 +Subject: [PATCH] Add debug variant of loader_trampolines.o + +This prevents a race condition when building 'julia-cli-debug +julia-cli-release' simultaneously (as we do for libjulia_jll, and +also generally seems appropriate given what is done for all other +source files. +--- + cli/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/cli/Makefile b/cli/Makefile +index c72ebff2b9..4e32c53b9a 100644 +--- a/cli/Makefile ++++ b/cli/Makefile +@@ -48,7 +48,7 @@ LIB_DOBJS := $(BUILDDIR)/loader_lib.dbg.obj + # If this is an architecture that supports dynamic linking, link in a trampoline definition + ifneq (,$(wildcard $(SRCDIR)/trampolines/trampolines_$(ARCH).S)) + LIB_OBJS += $(BUILDDIR)/loader_trampolines.o +-LIB_DOBJS += $(BUILDDIR)/loader_trampolines.o ++LIB_DOBJS += $(BUILDDIR)/loader_trampolines.dbg.obj + endif + + default: release +@@ -65,6 +65,8 @@ $(BUILDDIR)/loader_exe.dbg.obj : $(SRCDIR)/loader_exe.c $(HEADERS) $(JULIAHOME)/ + @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(LOADER_CFLAGS) -c $< -o $@) + $(BUILDDIR)/loader_trampolines.o : $(SRCDIR)/trampolines/trampolines_$(ARCH).S $(HEADERS) $(SRCDIR)/trampolines/common.h + @$(call PRINT_CC, $(CC) $(SHIPFLAGS) $(LOADER_CFLAGS) $< -c -o $@) ++$(BUILDDIR)/loader_trampolines.dbg.obj : $(SRCDIR)/trampolines/trampolines_$(ARCH).S $(HEADERS) $(SRCDIR)/trampolines/common.h ++ @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(LOADER_CFLAGS) $< -c -o $@) + + # Debugging target to help us see what kind of code is being generated for our trampolines + dump-trampolines: $(SRCDIR)/trampolines/trampolines_$(ARCH).S +-- +2.43.2 + diff --git a/L/libjulia/bundled/patches/1.12.0-DEV/loader_trampolines.patch b/L/libjulia/bundled/patches/1.12.0-DEV/loader_trampolines.patch new file mode 100644 index 00000000000..cc768b75f7b --- /dev/null +++ b/L/libjulia/bundled/patches/1.12.0-DEV/loader_trampolines.patch @@ -0,0 +1,38 @@ +From 286b7ba8a36fbe0ea29c599f629dfa7e6b855133 Mon Sep 17 00:00:00 2001 +From: Max Horn +Date: Thu, 22 Feb 2024 17:42:02 +0100 +Subject: [PATCH] Add debug variant of loader_trampolines.o + +This prevents a race condition when building 'julia-cli-debug +julia-cli-release' simultaneously (as we do for libjulia_jll, and +also generally seems appropriate given what is done for all other +source files. +--- + cli/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/cli/Makefile b/cli/Makefile +index c72ebff2b9..4e32c53b9a 100644 +--- a/cli/Makefile ++++ b/cli/Makefile +@@ -48,7 +48,7 @@ LIB_DOBJS := $(BUILDDIR)/loader_lib.dbg.obj + # If this is an architecture that supports dynamic linking, link in a trampoline definition + ifneq (,$(wildcard $(SRCDIR)/trampolines/trampolines_$(ARCH).S)) + LIB_OBJS += $(BUILDDIR)/loader_trampolines.o +-LIB_DOBJS += $(BUILDDIR)/loader_trampolines.o ++LIB_DOBJS += $(BUILDDIR)/loader_trampolines.dbg.obj + endif + + default: release +@@ -65,6 +65,8 @@ $(BUILDDIR)/loader_exe.dbg.obj : $(SRCDIR)/loader_exe.c $(HEADERS) $(JULIAHOME)/ + @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(LOADER_CFLAGS) -c $< -o $@) + $(BUILDDIR)/loader_trampolines.o : $(SRCDIR)/trampolines/trampolines_$(ARCH).S $(HEADERS) $(SRCDIR)/trampolines/common.h + @$(call PRINT_CC, $(CC) $(SHIPFLAGS) $(LOADER_CFLAGS) $< -c -o $@) ++$(BUILDDIR)/loader_trampolines.dbg.obj : $(SRCDIR)/trampolines/trampolines_$(ARCH).S $(HEADERS) $(SRCDIR)/trampolines/common.h ++ @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(LOADER_CFLAGS) $< -c -o $@) + + # Debugging target to help us see what kind of code is being generated for our trampolines + dump-trampolines: $(SRCDIR)/trampolines/trampolines_$(ARCH).S +-- +2.43.2 + diff --git a/L/libjulia/common.jl b/L/libjulia/common.jl index 3bf195aa6fa..88c3dce804c 100644 --- a/L/libjulia/common.jl +++ b/L/libjulia/common.jl @@ -5,7 +5,7 @@ using BinaryBuilder, Pkg include("../../fancy_toys.jl") # for get_addable_spec # list of supported Julia versions -julia_full_versions = [v"1.6.3", v"1.7.0", v"1.8.2", v"1.9.0", v"1.10.0-rc2", v"1.11.0-DEV"] +julia_full_versions = [v"1.6.3", v"1.7.0", v"1.8.2", v"1.9.0", v"1.10.0", v"1.11.0-DEV", v"1.12.0-DEV"] if ! @isdefined julia_versions julia_versions = Base.thispatch.(julia_full_versions) end @@ -48,16 +48,17 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version) v"1.7.0" => "8e870dbef71bc72469933317a1a18214fd1b4b12f1080784af7b2c56177efcb4", v"1.8.2" => "3e2cea35bf5df963ed7b75a83e8febfc000acf1e664ecd657a0772508eb1fb5d", v"1.9.0" => "48f4c8a7d5f33d0bc6ce24226df20ab49e385c2d0c3767ec8dfdb449602095b2", + v"1.10.0" => "a4136608265c5d9186ae4767e94ddc948b19b43f760aba3501a161290852054d", ) - if version == v"1.10.0-rc2" + if version == v"1.11.0-DEV" sources = [ - GitSource("https://github.com/JuliaLang/julia.git", "dbb9c46795b0e45b770254542854526f3db119b5"), + GitSource("https://github.com/JuliaLang/julia.git", "aecd8fd379a53afa780bc8a8404728b6aa22d6bc"), DirectorySource("./bundled"), ] - elseif version == v"1.11.0-DEV" + elseif version == v"1.12.0-DEV" sources = [ - GitSource("https://github.com/JuliaLang/julia.git", "2fe4190b3d26b4eee52b2b1b1054ddd6e38a941e"), + GitSource("https://github.com/JuliaLang/julia.git", "ccba6c91e24ebc0940acc2f8c390e6391ce0e292"), DirectorySource("./bundled"), ] else @@ -159,7 +160,9 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version) elif [[ "${version}" == 1.10.* ]]; then LLVMVERMAJOR=15 elif [[ "${version}" == 1.11.* ]]; then - LLVMVERMAJOR=15 + LLVMVERMAJOR=16 + elif [[ "${version}" == 1.12.* ]]; then + LLVMVERMAJOR=16 else echo "Error, LLVM version not specified" exit 1 @@ -276,6 +279,12 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version) echo "MARCH=armv7-a" >>Make.user fi + # macos 10.12 has aligned alloc in the header but not in libc++ + # leading to linker errors + if [[ "${target}" == *x86_64-apple* ]]; then + CXXFLAGS=-fno-aligned-allocation + fi + # Add file to one of the `STD_LIB_PATH` if [[ "${target}" == *mingw* ]]; then cp /opt/*-w64-mingw32/*-w64-mingw32/sys-root/bin/libwinpthread-1.dll /opt/*-w64-mingw32/*-mingw32/sys-root/lib/ @@ -370,21 +379,21 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version) # will work and allow people to build JLL binaries ready for Julia 1.7 if version.major == 1 && version.minor == 6 push!(dependencies, BuildDependency(get_addable_spec("SuiteSparse_jll", v"5.4.1+1"))) - push!(dependencies, Dependency("LibUV_jll")) - push!(dependencies, Dependency("LibUnwind_jll")) + push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+5"))) + push!(dependencies, Dependency(get_addable_spec("LibUnwind_jll", v"1.3.2+6"))) push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"11.0.1+3"))) push!(dependencies, BuildDependency(get_addable_spec("OpenBLAS_jll", v"0.3.10+10"))) push!(dependencies, BuildDependency(get_addable_spec("LibGit2_jll", v"1.2.3+0"))) elseif version.major == 1 && version.minor == 7 push!(dependencies, BuildDependency("SuiteSparse_jll")) - push!(dependencies, Dependency("LibUV_jll")) - push!(dependencies, Dependency("LibUnwind_jll"; platforms=filter(!Sys.isapple, platforms))) + push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+5"))) + push!(dependencies, Dependency(get_addable_spec("LibUnwind_jll", v"1.3.2+6"); platforms=filter(!Sys.isapple, platforms))) push!(dependencies, Dependency(get_addable_spec("LLVMLibUnwind_jll", v"11.0.1+1"); platforms=filter(Sys.isapple, platforms))) push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"12.0.1+3"))) elseif version.major == 1 && version.minor == 8 push!(dependencies, BuildDependency("SuiteSparse_jll")) push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+11"))) - push!(dependencies, Dependency("LibUnwind_jll"; platforms=filter(!Sys.isapple, platforms))) + push!(dependencies, Dependency(get_addable_spec("LibUnwind_jll", v"1.5.0+1"); platforms=filter(!Sys.isapple, platforms))) push!(dependencies, Dependency(get_addable_spec("LLVMLibUnwind_jll", v"12.0.1+0"); platforms=filter(Sys.isapple, platforms))) push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"13.0.1+3"))) elseif version.major == 1 && version.minor == 9 @@ -394,17 +403,23 @@ function build_julia(ARGS, version::VersionNumber; jllversion=version) push!(dependencies, Dependency(get_addable_spec("LLVMLibUnwind_jll", v"12.0.1+0"); platforms=filter(Sys.isapple, platforms))) push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"14.0.6+2"))) elseif version.major == 1 && version.minor == 10 - push!(dependencies, BuildDependency(get_addable_spec("SuiteSparse_jll", v"7.2.0+1"))) + push!(dependencies, BuildDependency(get_addable_spec("SuiteSparse_jll", v"7.2.1+1"))) push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+14"))) push!(dependencies, Dependency(get_addable_spec("LibUnwind_jll", v"1.5.0+5"); platforms=filter(!Sys.isapple, platforms))) push!(dependencies, Dependency(get_addable_spec("LLVMLibUnwind_jll", v"12.0.1+0"); platforms=filter(Sys.isapple, platforms))) - push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"15.0.7+8"))) + push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"15.0.7+10"))) elseif version.major == 1 && version.minor == 11 push!(dependencies, BuildDependency(get_addable_spec("SuiteSparse_jll", v"7.2.1+1"))) - push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+14"))) + push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+15"))) + push!(dependencies, Dependency(get_addable_spec("LibUnwind_jll", v"1.7.2+2"); platforms=filter(!Sys.isapple, platforms))) + push!(dependencies, Dependency(get_addable_spec("LLVMLibUnwind_jll", v"12.0.1+0"); platforms=filter(Sys.isapple, platforms))) + push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"16.0.6+4"))) + elseif version.major == 1 && version.minor == 12 + push!(dependencies, BuildDependency(get_addable_spec("SuiteSparse_jll", v"7.2.1+1"))) + push!(dependencies, Dependency(get_addable_spec("LibUV_jll", v"2.0.1+15"))) push!(dependencies, Dependency(get_addable_spec("LibUnwind_jll", v"1.7.2+2"); platforms=filter(!Sys.isapple, platforms))) push!(dependencies, Dependency(get_addable_spec("LLVMLibUnwind_jll", v"12.0.1+0"); platforms=filter(Sys.isapple, platforms))) - push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"15.0.7+9"))) + push!(dependencies, BuildDependency(get_addable_spec("LLVM_full_jll", v"16.0.6+4"))) else error("Unsupported Julia version") end