Message ID | 7abc701da9df39c2d6cd15bc3cf9e6cee445cb96.1737621162.git.jstancek@redhat.com (mailing list archive) |
---|---|
State | Under Review |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | selftests: mptcp: extend CFLAGS to keep options from environment | expand |
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
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. >
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
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(-)