diff mbox series

[v2,1/1] package/pkg-meson: always set b_pie to false

Message ID 20210529084836.2472641-1-fontaine.fabrice@gmail.com
State Accepted
Headers show
Series [v2,1/1] package/pkg-meson: always set b_pie to false | expand

Commit Message

Fabrice Fontaine May 29, 2021, 8:48 a.m. UTC
pipewire unconditionally enables b_pie since version 0.3.20 and
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/abe73c9146cd223b40b22581b1fd58bc044c671e
which will raise the following build failure on m68k since commit
a6d88d3ba5e30e11f4d726f341bc56c1be7c71c9:

/srv/storage/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-linux-uclibc/9.3.0/../../../../m68k-buildroot-linux-uclibc/bin/ld: /srv/storage/autobuild/run/instance-1/output-1/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/Scrt1.o: in function `lib_main':
(.text+0x4): undefined reference to `__shared_flat_add_library'

To fix this build failure, always set b_pie to false as PIE will be
enabled by toolchain/toolchain-wrapper.mk if needed

Fixes:
 - http://autobuild.buildroot.org/results/c258a2736661af8ea73abeda2503d8682e65f1e2

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2:
 - Always set b_pie to false

 package/pkg-meson.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Yann E. MORIN May 29, 2021, 9:15 a.m. UTC | #1
Fabrice, All,

On 2021-05-29 10:48 +0200, Fabrice Fontaine spake thusly:
> pipewire unconditionally enables b_pie since version 0.3.20 and
> https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/abe73c9146cd223b40b22581b1fd58bc044c671e
> which will raise the following build failure on m68k since commit
> a6d88d3ba5e30e11f4d726f341bc56c1be7c71c9:
> 
> /srv/storage/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-linux-uclibc/9.3.0/../../../../m68k-buildroot-linux-uclibc/bin/ld: /srv/storage/autobuild/run/instance-1/output-1/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/Scrt1.o: in function `lib_main':
> (.text+0x4): undefined reference to `__shared_flat_add_library'
> 
> To fix this build failure, always set b_pie to false as PIE will be
> enabled by toolchain/toolchain-wrapper.mk if needed

Did you verify that indeed, generated executables are PIE?

> Fixes:
>  - http://autobuild.buildroot.org/results/c258a2736661af8ea73abeda2503d8682e65f1e2
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2:
>  - Always set b_pie to false

Arf.. This arrived while I was working on v1, that set it depending on
the toolchain config...

Ah, but now I see that previous patch uses BR2_TOOLCHAIN_SUPPORTS_PIE;
it should have been using BR2_PIC_PIE indeed.

While waiting for more info, I'll revert the previous patch...

Regards,
Yann E. MORIN.

>  package/pkg-meson.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
> index a57820d4d2..1857450564 100644
> --- a/package/pkg-meson.mk
> +++ b/package/pkg-meson.mk
> @@ -91,6 +91,7 @@ define $(2)_CONFIGURE_CMDS
>  		--default-library=$(if $(BR2_STATIC_LIBS),static,shared) \
>  		--buildtype=$(if $(BR2_ENABLE_DEBUG),debug,release) \
>  		--cross-file=$$($$(PKG)_SRCDIR)/build/cross-compilation.conf \
> +		-Db_pie=false \
>  		-Dstrip=false \
>  		-Dbuild.pkg_config_path=$$(HOST_DIR)/lib/pkgconfig \
>  		$$($$(PKG)_CONF_OPTS) \
> -- 
> 2.30.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN May 29, 2021, 7:42 p.m. UTC | #2
Fabrice, All,

On 2021-05-29 10:48 +0200, Fabrice Fontaine spake thusly:
> pipewire unconditionally enables b_pie since version 0.3.20 and
> https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/abe73c9146cd223b40b22581b1fd58bc044c671e
> which will raise the following build failure on m68k since commit
> a6d88d3ba5e30e11f4d726f341bc56c1be7c71c9:
> 
> /srv/storage/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-linux-uclibc/9.3.0/../../../../m68k-buildroot-linux-uclibc/bin/ld: /srv/storage/autobuild/run/instance-1/output-1/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/Scrt1.o: in function `lib_main':
> (.text+0x4): undefined reference to `__shared_flat_add_library'
> 
> To fix this build failure, always set b_pie to false as PIE will be
> enabled by toolchain/toolchain-wrapper.mk if needed
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/c258a2736661af8ea73abeda2503d8682e65f1e2
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Applied to master, thanks.

Moving the options to the cross-compilation file can be done in a later
patch, possibly to be applied after the release to avoid introducing too
much unknown so close to the release...

Thanks!

Regards,
Yann E. MORIN.

> ---
> Changes v1 -> v2:
>  - Always set b_pie to false
> 
>  package/pkg-meson.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
> index a57820d4d2..1857450564 100644
> --- a/package/pkg-meson.mk
> +++ b/package/pkg-meson.mk
> @@ -91,6 +91,7 @@ define $(2)_CONFIGURE_CMDS
>  		--default-library=$(if $(BR2_STATIC_LIBS),static,shared) \
>  		--buildtype=$(if $(BR2_ENABLE_DEBUG),debug,release) \
>  		--cross-file=$$($$(PKG)_SRCDIR)/build/cross-compilation.conf \
> +		-Db_pie=false \
>  		-Dstrip=false \
>  		-Dbuild.pkg_config_path=$$(HOST_DIR)/lib/pkgconfig \
>  		$$($$(PKG)_CONF_OPTS) \
> -- 
> 2.30.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
index a57820d4d2..1857450564 100644
--- a/package/pkg-meson.mk
+++ b/package/pkg-meson.mk
@@ -91,6 +91,7 @@  define $(2)_CONFIGURE_CMDS
 		--default-library=$(if $(BR2_STATIC_LIBS),static,shared) \
 		--buildtype=$(if $(BR2_ENABLE_DEBUG),debug,release) \
 		--cross-file=$$($$(PKG)_SRCDIR)/build/cross-compilation.conf \
+		-Db_pie=false \
 		-Dstrip=false \
 		-Dbuild.pkg_config_path=$$(HOST_DIR)/lib/pkgconfig \
 		$$($$(PKG)_CONF_OPTS) \