Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [WIP] ocaml: fix build on aarch64-musl
@ 2022-03-21 19:23 ftrvxmtrx
  2022-06-29  2:15 ` github-actions
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: ftrvxmtrx @ 2022-03-21 19:23 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1076 bytes --]

There is a new pull request by ftrvxmtrx against master on the void-packages repository

https://github.com/ftrvxmtrx/void-packages ocaml-musl
https://github.com/void-linux/void-packages/pull/36268

[WIP] ocaml: fix build on aarch64-musl
Earlier fix for *-musl platforms has been "nopie=yes", which disables
PIE by modifying CFLAGS/LDFLAGS/... during build. This results in
OCaml's runtime shared library linking fail.
    
Later OCaml releases incorporated a fix for *-musl platforms that
properly disables PIE only where required.
    
Set nopie_files instead, which respects OCaml's build system choice
of CFLAGS/LDFLAGS/... and fixes aarch64-build.

I am not entirely sure whether `nopie=yes` in every package is a good idea. It seems to only be required on *-musl except x86_64-musl(?).

#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, (aarch64-musl)

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36268.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ocaml-musl-36268.patch --]
[-- Type: text/x-diff, Size: 6982 bytes --]

From d89245af283ea6faad959f02b74a3490cf6a0ee4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Mon, 21 Mar 2022 20:07:00 +0100
Subject: [PATCH 1/6] ocaml: fix aarch64-musl build

Earlier fix for *-musl platforms has been "nopie=yes", which disables
PIE by modifying CFLAGS/LDFLAGS/... during build. This results in
OCaml's runtime shared library linking fail.

Later OCaml releases incorporated a fix for *-musl platforms that
properly disables PIE only where required.

Set nopie_files instead, which respects OCaml's build system choice
of CFLAGS/LDFLAGS/... and fixes aarch64-build.
---
 srcpkgs/ocaml/template | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/ocaml/template b/srcpkgs/ocaml/template
index 629c13791dfe..23599fbc1b46 100644
--- a/srcpkgs/ocaml/template
+++ b/srcpkgs/ocaml/template
@@ -1,7 +1,7 @@
 # Template file for 'ocaml'
 pkgname=ocaml
 version=4.13.1
-revision=2
+revision=3
 build_style="gnu-configure"
 configure_args="--with-pic --libdir=/usr/lib/ocaml"
 make_build_target="world.opt"
@@ -22,7 +22,26 @@ case "$XBPS_TARGET_MACHINE" in
 	ppc-musl) broken="/usr/bin/ocamlc: unsupported relocation type 6";;
 	# https://github.com/ocaml/ocaml/issues/7562
 	# for ppc we solved this separately though
-	*-musl) nopie=yes ;;
+	*-musl)
+		nopie_files+="
+			/usr/bin/ocamlc.opt
+			/usr/bin/ocamlcmt
+			/usr/bin/ocamlcp.opt
+			/usr/bin/ocamldep.opt
+			/usr/bin/ocamldoc.opt
+			/usr/bin/ocamllex.opt
+			/usr/bin/ocamlmklib.opt
+			/usr/bin/ocamlmktop.opt
+			/usr/bin/ocamlobjinfo.opt
+			/usr/bin/ocamlopt.opt
+			/usr/bin/ocamloptp.opt
+			/usr/bin/ocamlprof.opt
+			/usr/bin/ocamlrun
+			/usr/bin/ocamlrund
+			/usr/bin/ocamlruni
+			/usr/bin/ocamlyacc
+		"
+		;;
 esac
 
 post_install() {

From 0d306b7cfef7ee53b0fed30170b1ce8912ea7930 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Mon, 21 Mar 2022 20:14:41 +0100
Subject: [PATCH 2/6] dune: set nopie=yes to fix aarch64-musl build

---
 srcpkgs/dune/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/dune/template b/srcpkgs/dune/template
index 178746cfc292..25472affd969 100644
--- a/srcpkgs/dune/template
+++ b/srcpkgs/dune/template
@@ -1,7 +1,7 @@
 # Template file for 'dune'
 pkgname=dune
 version=3.0.3
-revision=1
+revision=2
 makedepends="ocaml"
 depends="ocaml"
 short_desc="Composable build system for OCaml"
@@ -11,6 +11,7 @@ homepage="https://dune.build/"
 distfiles="https://github.com/ocaml/dune/archive/refs/tags/${version}.tar.gz"
 checksum=8f5e1570e68f7b2e0a8d1ffea77318e058f125f4cb8ea9a4af9cf9afe4ced893
 nocross="ocaml"
+nopie=yes
 
 _dune_release_pkgs="dune dune-action-plugin dune-build-info dune-configurator
  dune-glob dune-private-libs dune-site dyn stdune ordering xdg fiber"

From 7e332458d43e2854789a45e375e8679e019b4e20 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Mon, 21 Mar 2022 20:15:17 +0100
Subject: [PATCH 3/6] opam: set nopie=yes to fix aarch64-musl build

---
 srcpkgs/opam/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/opam/template b/srcpkgs/opam/template
index 236a2f963b70..fe103262ef59 100644
--- a/srcpkgs/opam/template
+++ b/srcpkgs/opam/template
@@ -1,7 +1,7 @@
 # Template file for 'opam'
 pkgname=opam
 version=2.1.2
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--docdir=/usr/share/doc/${pkgname}"
 make_build_args="lib-ext all"
@@ -16,6 +16,7 @@ homepage="http://opam.ocamlpro.com"
 distfiles="https://github.com/ocaml/${pkgname}/archive/${version}.tar.gz"
 checksum=735e717532f135064940fe3fef573acce6b1bbdc5e146470c2ac20fc8510a470
 nocross=yes
+nopie=yes
 disable_parallel_build=yes
 
 post_install() {

From 04d31b6ff110dab52773b601291522dfefe9bfe0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Mon, 21 Mar 2022 20:15:59 +0100
Subject: [PATCH 4/6] ocamlbuild: set nopie=yes to fix aarch64-musl build

---
 srcpkgs/ocamlbuild/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/ocamlbuild/template b/srcpkgs/ocamlbuild/template
index 077d5cc7f632..044b8f7aed12 100644
--- a/srcpkgs/ocamlbuild/template
+++ b/srcpkgs/ocamlbuild/template
@@ -1,7 +1,7 @@
 # Template file for 'ocamlbuild'
 pkgname=ocamlbuild
 version=0.14.1
-revision=1
+revision=2
 build_style=gnu-makefile
 make_build_args="PREFIX=/usr"
 make_install_args="PREFIX=/usr"
@@ -13,3 +13,4 @@ homepage="https://github.com/ocaml/ocamlbuild"
 distfiles="https://github.com/ocaml/${pkgname}/archive/${version}.tar.gz"
 checksum=4e1279ff0ef80c862eaa5207a77020d741e89ef94f0e4a92a37c4188dbf08256
 nocross=yes
+nopie=yes

From 09449441f75cd98e84e627f20973aaf80acce43c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Mon, 21 Mar 2022 20:16:35 +0100
Subject: [PATCH 5/6] coccinelle: set nopie=yes to fix aarch64-musl build

---
 srcpkgs/coccinelle/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/coccinelle/template b/srcpkgs/coccinelle/template
index 211c9bdb4394..c9c80a611c9c 100644
--- a/srcpkgs/coccinelle/template
+++ b/srcpkgs/coccinelle/template
@@ -1,7 +1,7 @@
 # Template file for 'coccinelle'
 pkgname=coccinelle
 version=1.1.0
-revision=3
+revision=4
 build_style=gnu-configure
 configure_args="--without-pdflatex --enable-release --enable-opt
  --with-python=/usr/bin/python3"
@@ -16,6 +16,7 @@ distfiles="https://github.com/coccinelle/coccinelle/archive/${version}.tar.gz"
 checksum=e40bdd51eda84f9bf3154c592ebb4af73a4dd9656c03e7ca1d3aa0247d98d185
 disable_parallel_build=yes
 nocross=yes
+nopie=yes
 
 pre_configure() {
 	autoreconf -fi

From 7a502d91092fd7251c047ba5b4a35f88304af5a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <ftrvxmtrx@gmail.com>
Date: Mon, 21 Mar 2022 20:17:46 +0100
Subject: [PATCH 6/6] unison: set nopie=yes to fix aarch64-musl build

---
 srcpkgs/unison/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/unison/template b/srcpkgs/unison/template
index 67c424a3b8af..bbcc19b90668 100644
--- a/srcpkgs/unison/template
+++ b/srcpkgs/unison/template
@@ -1,7 +1,7 @@
 # Template file for 'unison'
 pkgname=unison
 version=2.51.4
-revision=2
+revision=3
 hostmakedepends="ocaml"
 short_desc="File-synchronization tool"
 maintainer="allan <mail@may.mooo.com>"
@@ -10,6 +10,7 @@ homepage="https://www.cis.upenn.edu/~bcpierce/unison/"
 distfiles="https://github.com/bcpierce00/unison/archive/v${version}.tar.gz"
 checksum=d1ecc7581aaf2ed0f3403d4960f468acd7b9f1d92838a17c96e6d1df79b802d5
 nocross="OCaml does not cross compile"
+nopie=yes
 
 do_build() {
 	CFLAGS= make ${makejobs} UISTYLE=text DEBUGGING=false THREADS=true

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [WIP] ocaml: fix build on aarch64-musl
  2022-03-21 19:23 [PR PATCH] [WIP] ocaml: fix build on aarch64-musl ftrvxmtrx
@ 2022-06-29  2:15 ` github-actions
  2022-06-29 16:42 ` leahneukirchen
  2022-06-29 16:42 ` [PR PATCH] [Closed]: " leahneukirchen
  2 siblings, 0 replies; 4+ messages in thread
From: github-actions @ 2022-06-29  2:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

New comment by github-actions[bot] on void-packages repository

https://github.com/void-linux/void-packages/pull/36268#issuecomment-1169458653

Comment:
Pull Requests become stale 90 days after last activity and are closed 14 days after that.  If this pull request is still relevant bump it or assign it.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [WIP] ocaml: fix build on aarch64-musl
  2022-03-21 19:23 [PR PATCH] [WIP] ocaml: fix build on aarch64-musl ftrvxmtrx
  2022-06-29  2:15 ` github-actions
@ 2022-06-29 16:42 ` leahneukirchen
  2022-06-29 16:42 ` [PR PATCH] [Closed]: " leahneukirchen
  2 siblings, 0 replies; 4+ messages in thread
From: leahneukirchen @ 2022-06-29 16:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 210 bytes --]

New comment by leahneukirchen on void-packages repository

https://github.com/void-linux/void-packages/pull/36268#issuecomment-1170225067

Comment:
OCaml 4.14 seems to generate PIE executables on aarch64-musl.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Closed]: [WIP] ocaml: fix build on aarch64-musl
  2022-03-21 19:23 [PR PATCH] [WIP] ocaml: fix build on aarch64-musl ftrvxmtrx
  2022-06-29  2:15 ` github-actions
  2022-06-29 16:42 ` leahneukirchen
@ 2022-06-29 16:42 ` leahneukirchen
  2 siblings, 0 replies; 4+ messages in thread
From: leahneukirchen @ 2022-06-29 16:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 918 bytes --]

There's a closed pull request on the void-packages repository

[WIP] ocaml: fix build on aarch64-musl
https://github.com/void-linux/void-packages/pull/36268

Description:
Earlier fix for *-musl platforms has been "nopie=yes", which disables
PIE by modifying CFLAGS/LDFLAGS/... during build. This results in
OCaml's runtime shared library linking fail.
    
Later OCaml releases incorporated a fix for *-musl platforms that
properly disables PIE only where required.
    
Set nopie_files instead, which respects OCaml's build system choice
of CFLAGS/LDFLAGS/... and fixes aarch64-build.

I am not entirely sure whether `nopie=yes` in every package is a good idea. It seems to only be required on *-musl except x86_64-musl(?).

#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, (aarch64-musl)

[ci skip]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-06-29 16:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-21 19:23 [PR PATCH] [WIP] ocaml: fix build on aarch64-musl ftrvxmtrx
2022-06-29  2:15 ` github-actions
2022-06-29 16:42 ` leahneukirchen
2022-06-29 16:42 ` [PR PATCH] [Closed]: " leahneukirchen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).