Package build environments like Fedora rpmbuild introduced hardening
options (e.g. -pie -Wl,-z,now) by passing a -spec option to CFLAGS
and LDFLAGS.
mptcp Makefile currently overrides CFLAGS but not LDFLAGS, which leads
to a mismatch and build failure, for example:
make[1]: *** [../../lib.mk:222: tools/testing/selftests/net/mptcp/mptcp_sockopt] Error 1
/usr/bin/ld: /tmp/ccqyMVdb.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
tools/testing/selftests/net/mptcp/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/Makefile b/tools/testing/selftests/net/mptcp/Makefile
index 8e3fc05a5397..9706bc73809f 100644
--- a/tools/testing/selftests/net/mptcp/Makefile
+++ b/tools/testing/selftests/net/mptcp/Makefile
@@ -2,7 +2,7 @@
top_srcdir = ../../../../..
-CFLAGS = -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES)
+CFLAGS += -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES)
TEST_PROGS := mptcp_connect.sh pm_netlink.sh mptcp_join.sh diag.sh \
simult_flows.sh mptcp_sockopt.sh userspace_pm.sh
--
2.43.0
On Thu, Jan 23, 2025 at 09:35:42AM +0100, Jan Stancek wrote: > Package build environments like Fedora rpmbuild introduced hardening > options (e.g. -pie -Wl,-z,now) by passing a -spec option to CFLAGS > and LDFLAGS. > > mptcp Makefile currently overrides CFLAGS but not LDFLAGS, which leads > to a mismatch and build failure, for example: > make[1]: *** [../../lib.mk:222: tools/testing/selftests/net/mptcp/mptcp_sockopt] Error 1 > /usr/bin/ld: /tmp/ccqyMVdb.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIE > /usr/bin/ld: failed to set dynamic section sizes: bad value > collect2: error: ld returned 1 exit status > > Signed-off-by: Jan Stancek <jstancek@redhat.com> > --- > tools/testing/selftests/net/mptcp/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/net/mptcp/Makefile b/tools/testing/selftests/net/mptcp/Makefile > index 8e3fc05a5397..9706bc73809f 100644 > --- a/tools/testing/selftests/net/mptcp/Makefile > +++ b/tools/testing/selftests/net/mptcp/Makefile > @@ -2,7 +2,7 @@ > > top_srcdir = ../../../../.. > > -CFLAGS = -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) > +CFLAGS += -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) > > TEST_PROGS := mptcp_connect.sh pm_netlink.sh mptcp_join.sh diag.sh \ > simult_flows.sh mptcp_sockopt.sh userspace_pm.sh > -- > 2.43.0 > Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
On Thu, Jan 23, 2025 at 08:39:53AM +0000, Hangbin Liu wrote: > On Thu, Jan 23, 2025 at 09:35:42AM +0100, Jan Stancek wrote: > > Package build environments like Fedora rpmbuild introduced hardening > > options (e.g. -pie -Wl,-z,now) by passing a -spec option to CFLAGS > > and LDFLAGS. > > > > mptcp Makefile currently overrides CFLAGS but not LDFLAGS, which leads > > to a mismatch and build failure, for example: > > make[1]: *** [../../lib.mk:222: tools/testing/selftests/net/mptcp/mptcp_sockopt] Error 1 > > /usr/bin/ld: /tmp/ccqyMVdb.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIE > > /usr/bin/ld: failed to set dynamic section sizes: bad value > > collect2: error: ld returned 1 exit status > > > > Signed-off-by: Jan Stancek <jstancek@redhat.com> > > --- > > tools/testing/selftests/net/mptcp/Makefile | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools/testing/selftests/net/mptcp/Makefile b/tools/testing/selftests/net/mptcp/Makefile > > index 8e3fc05a5397..9706bc73809f 100644 > > --- a/tools/testing/selftests/net/mptcp/Makefile > > +++ b/tools/testing/selftests/net/mptcp/Makefile > > @@ -2,7 +2,7 @@ > > > > top_srcdir = ../../../../.. > > > > -CFLAGS = -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) > > +CFLAGS += -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) > > > > TEST_PROGS := mptcp_connect.sh pm_netlink.sh mptcp_join.sh diag.sh \ > > simult_flows.sh mptcp_sockopt.sh userspace_pm.sh > > -- > > 2.43.0 > > > > Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> Hmm, net-next is closed. Not sure if we can target this to net since it fixes the build errors. Thanks Hangbin
Hi Jan, Hangbin, (-cc <eliang@kernel.org>: wrong address apparently) On 23/01/2025 09:43, Hangbin Liu wrote: > On Thu, Jan 23, 2025 at 08:39:53AM +0000, Hangbin Liu wrote: >> On Thu, Jan 23, 2025 at 09:35:42AM +0100, Jan Stancek wrote: >>> Package build environments like Fedora rpmbuild introduced hardening >>> options (e.g. -pie -Wl,-z,now) by passing a -spec option to CFLAGS >>> and LDFLAGS. >>> >>> mptcp Makefile currently overrides CFLAGS but not LDFLAGS, which leads >>> to a mismatch and build failure, for example: >>> make[1]: *** [../../lib.mk:222: tools/testing/selftests/net/mptcp/mptcp_sockopt] Error 1 >>> /usr/bin/ld: /tmp/ccqyMVdb.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIE >>> /usr/bin/ld: failed to set dynamic section sizes: bad value >>> collect2: error: ld returned 1 exit status >>> >>> Signed-off-by: Jan Stancek <jstancek@redhat.com> >>> --- >>> tools/testing/selftests/net/mptcp/Makefile | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/tools/testing/selftests/net/mptcp/Makefile b/tools/testing/selftests/net/mptcp/Makefile >>> index 8e3fc05a5397..9706bc73809f 100644 >>> --- a/tools/testing/selftests/net/mptcp/Makefile >>> +++ b/tools/testing/selftests/net/mptcp/Makefile >>> @@ -2,7 +2,7 @@ >>> >>> top_srcdir = ../../../../.. >>> >>> -CFLAGS = -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) >>> +CFLAGS += -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) Thank you for the fix, it looks good to me too: Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> >>> >>> TEST_PROGS := mptcp_connect.sh pm_netlink.sh mptcp_join.sh diag.sh \ >>> simult_flows.sh mptcp_sockopt.sh userspace_pm.sh >>> -- >>> 2.43.0 >>> >> >> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> > > Hmm, net-next is closed. Not sure if we can target this to net since it fixes > the build errors. I think this should target -net. It should then have a Fixes tag (and cc Stable). Not sure if we need to backport that all along. Maybe enough to use the following one, because I see it fixed the same issue in net and tcp_ao: Fixes: cc937dad85ae ("selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk") BTW, I guess you will need the same fix in tools/testing/selftests/net/lib/Makefile and tools/testing/selftests/net/openvswitch/Makefile. @Jan: Do you mind fixing them too please? Also, please next time add the target in the subject, e.g. [PATCH net], see: https://docs.kernel.org/process/maintainer-netdev.html @Netdev maintainers: this can be applied directly in -net, no need to go through the MPTCP tree first. But it can if you prefer me adding the Fixes tag. Cheers, Matt -- Sponsored by the NGI0 Core fund.
On Thu, Jan 23, 2025 at 11:26 AM Matthieu Baerts <matttbe@kernel.org> wrote: > > Hi Jan, Hangbin, > > (-cc <eliang@kernel.org>: wrong address apparently) > > On 23/01/2025 09:43, Hangbin Liu wrote: > > On Thu, Jan 23, 2025 at 08:39:53AM +0000, Hangbin Liu wrote: > >> On Thu, Jan 23, 2025 at 09:35:42AM +0100, Jan Stancek wrote: > >>> Package build environments like Fedora rpmbuild introduced hardening > >>> options (e.g. -pie -Wl,-z,now) by passing a -spec option to CFLAGS > >>> and LDFLAGS. > >>> > >>> mptcp Makefile currently overrides CFLAGS but not LDFLAGS, which leads > >>> to a mismatch and build failure, for example: > >>> make[1]: *** [../../lib.mk:222: tools/testing/selftests/net/mptcp/mptcp_sockopt] Error 1 > >>> /usr/bin/ld: /tmp/ccqyMVdb.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIE > >>> /usr/bin/ld: failed to set dynamic section sizes: bad value > >>> collect2: error: ld returned 1 exit status > >>> > >>> Signed-off-by: Jan Stancek <jstancek@redhat.com> > >>> --- > >>> tools/testing/selftests/net/mptcp/Makefile | 2 +- > >>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>> > >>> diff --git a/tools/testing/selftests/net/mptcp/Makefile b/tools/testing/selftests/net/mptcp/Makefile > >>> index 8e3fc05a5397..9706bc73809f 100644 > >>> --- a/tools/testing/selftests/net/mptcp/Makefile > >>> +++ b/tools/testing/selftests/net/mptcp/Makefile > >>> @@ -2,7 +2,7 @@ > >>> > >>> top_srcdir = ../../../../.. > >>> > >>> -CFLAGS = -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) > >>> +CFLAGS += -Wall -Wl,--no-as-needed -O2 -g -I$(top_srcdir)/usr/include $(KHDR_INCLUDES) > > Thank you for the fix, it looks good to me too: > > Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> > > >>> > >>> TEST_PROGS := mptcp_connect.sh pm_netlink.sh mptcp_join.sh diag.sh \ > >>> simult_flows.sh mptcp_sockopt.sh userspace_pm.sh > >>> -- > >>> 2.43.0 > >>> > >> > >> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> > > > > Hmm, net-next is closed. Not sure if we can target this to net since it fixes > > the build errors. > > I think this should target -net. It should then have a Fixes tag (and cc > Stable). Not sure if we need to backport that all along. Maybe enough to > use the following one, because I see it fixed the same issue in net and > tcp_ao: > > Fixes: cc937dad85ae ("selftests: centralize -D_GNU_SOURCE= to CFLAGS in > lib.mk") > > BTW, I guess you will need the same fix in > tools/testing/selftests/net/lib/Makefile and > tools/testing/selftests/net/openvswitch/Makefile. > > @Jan: Do you mind fixing them too please? Also, please next time add the > target in the subject, e.g. [PATCH net], see: Will do. Regards, Jan > > https://docs.kernel.org/process/maintainer-netdev.html > > @Netdev maintainers: this can be applied directly in -net, no need to go > through the MPTCP tree first. But it can if you prefer me adding the > Fixes tag. > > Cheers, > Matt > -- > Sponsored by the NGI0 Core fund. >
© 2016 - 2025 Red Hat, Inc.