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 - 2026 Red Hat, Inc.