From 7b949bc318ef4ce3bfefa00962440d49aac82919 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 15 Dec 2023 15:32:59 +0200 Subject: gnu: fpc: Fix building on i686-linux. * gnu/packages/pascal.scm (fpc)[source]: Add patch. * gnu/packages/patches/fpc-glibc-2.34-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: I6fde62de63171d7e16754b36db460f4073b1979d --- gnu/packages/pascal.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu/packages/pascal.scm') diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index 49583c220d3..47fec7f417d 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -76,7 +76,8 @@ (sha256 (base32 "07qna2pvlpa7j0i2wdixjxpizdvffv51nbr1waczk0xv8cq9kvw5")) - (patches (search-patches "fpc-reproducibility.patch")) + (patches (search-patches "fpc-reproducibility.patch" + "fpc-glibc-2.34-compat.patch")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.3 From 1954a1e33de4bb4be7f91393fd4842b37f6a4f52 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 15 Dec 2023 15:34:34 +0200 Subject: gnu: fpc: Patch more dynamic-linker paths. * gnu/packages/pascal.scm (fpc)[arguments]: Patch more paths to the dynamic-linker in the 'configure phase. Change-Id: I0eebf1271d24e22839db0a8fd96385408067fdbf --- gnu/packages/pascal.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'gnu/packages/pascal.scm') diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index 47fec7f417d..c6ae1bf3dd6 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2020 Eric Bavier ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2022 Ricardo Wurmus +;;; Copyright © 2023 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -161,9 +162,14 @@ (search-input-file inputs ,(glibc-dynamic-linker))) (("/lib64/ld-linux-x86-64.so.2") (search-input-file inputs ,(glibc-dynamic-linker))) - ; TODO: /lib/ld-linux-armhf.so.3 - ; TODO: /lib/ld-linux-aarch64.so.1 - ; TODO: /lib64/ld64.so.2 + (("/lib/ld.so.1") + (search-input-file inputs ,(glibc-dynamic-linker))) + (("/lib64/ld64.so.[12]") + (search-input-file inputs ,(glibc-dynamic-linker))) + (("/lib/ld-linux(-armhf)?.so.3") + (search-input-file inputs ,(glibc-dynamic-linker))) + (("/lib/ld-linux-aarch64.so.1") + (search-input-file inputs ,(glibc-dynamic-linker))) ;; Add glibc to ld's search path. (("if \\(isdll\\) then") (string-append -- cgit v1.3 From 2b501ed7305da10005fddec8a9538b48b14ba04b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 15 Dec 2023 15:38:24 +0200 Subject: gnu: fpc: Add support for powerpc-linux. * gnu/packages/pascal.scm (fpc-bootstrap-powerpc): New variable. (fpc)[arguments]: Add cases for powerpc-linux. [native-inputs]: Add case for fpc-binary for powerpc-linux. Change-Id: I0d4d9dda9d4c8f70ff20031ab94f1dc439df88e2 --- gnu/packages/pascal.scm | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'gnu/packages/pascal.scm') diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index c6ae1bf3dd6..89a1734e38c 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -56,6 +56,15 @@ (base32 "0n4r85dsr86zlk7r4hbd4nj14sda6rwgdgzxg4gj4q981fn80agn")))) +(define fpc-bootstrap-powerpc + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/freepascal/Linux/" + %fpc-version "/fpc-" %fpc-version ".powerpc-linux.tar")) + (sha256 + (base32 + "1zhdypm99bzs5706g4nxwajiadv82jwd87cr300lrivy1rzj5h4a")))) + (define fpc-bootstrap-x86_64 (origin (method url-fetch) @@ -92,7 +101,7 @@ (rename-file "install-man" "install/man") (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe"))))) (build-system gnu-build-system) - (supported-systems '("i686-linux" "x86_64-linux")) + (supported-systems '("i686-linux" "x86_64-linux" "powerpc-linux")) (inputs (list expat glibc ncurses zlib)) (native-inputs @@ -101,7 +110,7 @@ (%current-system)) ("i686-linux" fpc-bootstrap-i386) ;;("powerpc64le-linux" fpc-bootstrap-ppc64le) - ;;("powerpc-linux" fpc-bootstrap-ppc) + ("powerpc-linux" fpc-bootstrap-powerpc) ("x86_64-linux" fpc-bootstrap-x86_64) ;; XXX: Wrong, but innocuous so long ;; `supported-systems' is kept in sync. @@ -111,11 +120,11 @@ #:phases (let ((fpc-bootstrap-path (string-append (getcwd) "/" ,name "-" ,version "/fpc-bin")) - (arch ,(match (or (%current-target-system) - (%current-system)) - ("i686-linux" "i386") - ("x86_64-linux" "x86_64") - (_ "unknown")))) + (arch ,(cond + ((target-x86-32?) "i386") + ((target-ppc32?) "powerpc") + ((target-x86-64?) "x86_64") + (else "unknown")))) (modify-phases %standard-phases (add-after 'unpack 'unpack-bin (lambda* (#:key inputs #:allow-other-keys) @@ -199,9 +208,11 @@ (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) ;; This is the suffix of the ppc[arch] binary. - (suffix (if (string= arch "x86_64") - "x64" - "386")) + (suffix ,(cond + ((target-x86-32?) "386") + ((target-ppc32?) "ppc") + ((target-x86-64?) "x64") + (else ""))) (ppc (string-append "ppc" suffix))) (invoke "make" "install" "NOGDB=1" (string-append "INSTALL_PREFIX=" out)) -- cgit v1.3 From 617e3dd2ae14bef085756cdf8fa43d683aa13b2f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 15 Dec 2023 15:41:07 +0200 Subject: gnu: fpc: Add support for powerpc64le-linux. * gnu/packages/pascal.scm (fpc-bootstrap-powerpc64le): New variable. (fpc)[arguments]: Add cases for powerpc64le-linux. [native-inputs]: Add case for fpc-binary for powerpc64le-linux. Change-Id: I4f12003b35ef60764e7e25cc14aed7d243c6fe0f --- gnu/packages/pascal.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'gnu/packages/pascal.scm') diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index 89a1734e38c..419bee1fab3 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -65,6 +65,15 @@ (base32 "1zhdypm99bzs5706g4nxwajiadv82jwd87cr300lrivy1rzj5h4a")))) +(define fpc-bootstrap-powerpc64le + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/freepascal/Linux/" + %fpc-version "/fpc-" %fpc-version ".powerpc64le-linux.tar")) + (sha256 + (base32 + "12p3lmi1vn7agpw4pipp6ra8r85319sjcvbzh7z6kangmry7vic3")))) + (define fpc-bootstrap-x86_64 (origin (method url-fetch) @@ -101,7 +110,8 @@ (rename-file "install-man" "install/man") (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe"))))) (build-system gnu-build-system) - (supported-systems '("i686-linux" "x86_64-linux" "powerpc-linux")) + (supported-systems '("i686-linux" "x86_64-linux" + "powerpc-linux" "powerpc64le-linux")) (inputs (list expat glibc ncurses zlib)) (native-inputs @@ -109,8 +119,8 @@ `(("fpc-binary" ,(match (or (%current-target-system) (%current-system)) ("i686-linux" fpc-bootstrap-i386) - ;;("powerpc64le-linux" fpc-bootstrap-ppc64le) ("powerpc-linux" fpc-bootstrap-powerpc) + ("powerpc64le-linux" fpc-bootstrap-powerpc64le) ("x86_64-linux" fpc-bootstrap-x86_64) ;; XXX: Wrong, but innocuous so long ;; `supported-systems' is kept in sync. @@ -123,6 +133,7 @@ (arch ,(cond ((target-x86-32?) "i386") ((target-ppc32?) "powerpc") + ((target-ppc64le?) "powerpc64") ((target-x86-64?) "x86_64") (else "unknown")))) (modify-phases %standard-phases @@ -211,6 +222,7 @@ (suffix ,(cond ((target-x86-32?) "386") ((target-ppc32?) "ppc") + ((target-ppc64le?) "ppc64") ((target-x86-64?) "x64") (else ""))) (ppc (string-append "ppc" suffix))) -- cgit v1.3 From ed9d47c6ae347c2ecf6c16ce52c08cb1fb2bd40f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 15 Dec 2023 15:41:41 +0200 Subject: gnu: fpc: Add support for aarch64-linux. * gnu/packages/pascal.scm (fpc-bootstrap-aarch64): New variable. (fpc)[arguments]: Add cases for aarch64-linux. [native-inputs]: Add case for fpc-binary for aarch64-linux. Change-Id: I03630f9b36c10636db23c00aaf8f72b9ddf2390d --- gnu/packages/pascal.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'gnu/packages/pascal.scm') diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index 419bee1fab3..9d012fa28c8 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -47,6 +47,15 @@ (define %fpc-release-date "2021/05/19") ;;; FIXME: Bootstrap properly; these are prebuilt binaries. +(define fpc-bootstrap-aarch64 + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/freepascal/Linux/" + %fpc-version "/fpc-" %fpc-version ".aarch64-linux.tar")) + (sha256 + (base32 + "0lalar6qk04acb2j8p6654hlz0yj6zdab046zi82zf5mnvwp155k")))) + (define fpc-bootstrap-i386 (origin (method url-fetch) @@ -111,13 +120,15 @@ (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe"))))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux" - "powerpc-linux" "powerpc64le-linux")) + "powerpc-linux" "powerpc64le-linux" + "aarch64-linux")) (inputs (list expat glibc ncurses zlib)) (native-inputs ;; FPC is built with FPC, so we need bootstrap binaries. `(("fpc-binary" ,(match (or (%current-target-system) (%current-system)) + ("aarch64-linux" fpc-bootstrap-aarch64) ("i686-linux" fpc-bootstrap-i386) ("powerpc-linux" fpc-bootstrap-powerpc) ("powerpc64le-linux" fpc-bootstrap-powerpc64le) @@ -131,6 +142,7 @@ (let ((fpc-bootstrap-path (string-append (getcwd) "/" ,name "-" ,version "/fpc-bin")) (arch ,(cond + ((target-aarch64?) "aarch64") ((target-x86-32?) "i386") ((target-ppc32?) "powerpc") ((target-ppc64le?) "powerpc64") @@ -220,6 +232,7 @@ (let* ((out (assoc-ref outputs "out")) ;; This is the suffix of the ppc[arch] binary. (suffix ,(cond + ((target-aarch64?) "a64") ((target-x86-32?) "386") ((target-ppc32?) "ppc") ((target-ppc64le?) "ppc64") -- cgit v1.3