package/mono: fix undefined reference to tls
PATCH 1/1 package/mono: fix undefined reference to tls
This commit fixes the nasty undefined reference to tls bug experienced with musl.
Fixes:
http://autobuild.buildroot.net/results/048f04488cb8c7f4c32b828aa5214ebc22ba0153
--- package/mono/mono.mk | 4 ++++ 1 file changed, 4 insertions(+)
package/mono/mono.mk +4 -0
@@ -26,6 +26,10 @@ MONO_CONF_OPTS = --disable-gtk-doc \ --disable-mcs-build \ --enable-static +ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) +MONO_CONF_OPTS += --with-tls=pthread +endif + # The libraries have been built by the host-mono build. Since they are # architecture-independent, we simply copy them to the target. define MONO_INSTALL_LIBS
Signature · 1 line
1.9.1
PATCH 1/1 package/mono: fix undefined reference to tls
Hello,
Thanks for investigating this issue!
Quoted 14 lines · Angelo Compagnucci
This commit fixes the nasty undefined reference to tls bug experienced with musl.
Fixes:
http://autobuild.buildroot.net/results/048f04488cb8c7f4c32b828aa5214ebc22ba0153Signed-off-by Angelo Compagnucci <[email protected]>--- package/mono/mono.mk | 4 ++++ 1 file changed, 4 insertions(+)package/mono/mono.mk +0
-0
package/mono/mono.mk MONO_CONF_OPTS = --disable-gtk-doc \ · line 31
Quoted 6 lines
package/mono/mono.mk +3
-0@@ -26,6 +26,10 @@ MONO_CONF_OPTS = --disable-gtk-doc \ --disable-mcs-build \ --enable-static +ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) +MONO_CONF_OPTS += --with-tls=pthread +endif
Hum, that's interesting. Do you have more details about what this --with-tls option is doing?
Is --with-tls related to Thread Local Storage provided by the compiler ?
Indeed, TLS support in gcc was disabled for musl toolchains until recently (i.e until commit
https://git.buildroot.org/buildroot/commit/package/gcc?id=1bd02bc230e1b3b22ca3eb23fb3dcb91b878283a).
Since the toolchain that was causing the build failure was built *prior* to this commit, maybe this commit fixes the issue, as it would make musl toolchains have TLS support enabled in gcc.
Could you test this using the internal toolchain backend, and see if without your fix the problem isn't already fixed? If that's the case, I'll simply rebuild the pre-built toolchains.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 package/mono: fix undefined reference to tls
Hello Thomas,
2016-09-08 13:42 GMT+02:00 Thomas Petazzoni <
[email protected]>:
Quoted 24 lines
Hello,
Thanks for investigating this issue!
Quoted 1 line · Angelo Compagnucci
This commit fixes the nasty undefined reference to tls bug experienced
with musl.
Quoted 3 lines
Fixes:
http://autobuild.buildroot.net/results/048f04488cb8c7f4c32b828aa5214e
bc22ba0153Quoted 13 lines
Signed-off-by Angelo Compagnucci <[email protected]>--- package/mono/mono.mk | 4 ++++ 1 file changed, 4 insertions(+)package/mono/mono.mk +0
-0@@ -26,6 +26,10 @@ MONO_CONF_OPTS = --disable-gtk-doc \ --disable-mcs-build \ --enable-static
Quoted 7 lines
package/mono/mono.mk MONO_CONF_OPTS = --disable-gtk-doc \ · line 31
Quoted 3 lines
package/mono/mono.mk +3
-0+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) +MONO_CONF_OPTS += --with-tls=pthread +endifHum, that's interesting. Do you have more details about what this --with-tls option is doing?
Actually, it sets another variable (HAVE_KW_THREAD) that it's used around the code to accommodate the use of __thread or phtread as local storage.
Quoted 2 lines
Is --with-tls related to Thread Local Storage provided by the compiler ?
Yes, absolutely!
Quoted 6 lines
Indeed, TLS support in gcc was disabled for musl toolchains until recently (i.e until commit
https://git.buildroot.org/buildroot/commit/package/gcc?id=1bd02bc230e1b3b22ca3eb23fb3dcb91b878283a).
Quoted 8 lines
Since the toolchain that was causing the build failure was built *prior* to this commit, maybe this commit fixes the issue, as it would make musl toolchains have TLS support enabled in gcc.
Could you test this using the internal toolchain backend, and see if without your fix the problem isn't already fixed? If that's the case, I'll simply rebuild the pre-built toolchains.
I tested both the pre-compiled musl external toolchain and a musl internal toolchain I compiled and I can confirm that it's working without this patch. So, probably simply rebuilding the autobuild toolchain should solve the problem.
Sincerely, Angelo
Quoted 9 lines
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Signature · 4 lines
Profile: http://it.linkedin.com/in/compagnucciangelo -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160909/716811ea/attachment.html>
PATCH 1/1 package/mono: fix undefined reference to tls
Hello,
Quoted 4 lines · Angelo Compagnucci
I tested both the pre-compiled musl external toolchain and a musl internal toolchain I compiled and I can confirm that it's working without this patch. So, probably simply rebuilding the autobuild toolchain should solve the problem.
Excellent, thanks! I'll kick a rebuild of the different Buildroot toolchains soon, especially since we have move to a newer binutils version, and have more recent version of gcc available as well.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com