[oe] [PATCH 1/1] syslog-ng: fix do_compi1e of qemuarm while DEBUG_BUILD

Hongxu Jia hongxu.jia at windriver.com
Tue Aug 12 06:26:13 UTC 2014


The thread local storage caused arm-gcc broken while compiling
syslog-ng with option '-g -O'.
...
dnscache.s: Assembler messages:
dnscache.s:100: Error: invalid operands (.text and *UND* sections) for `-'
...

Add option --enable-thread-tls in configure to explicitly disable
thread local storage for arm while DEBUG_BUILD enabled.

Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
 ...c-add-option-enable-thread-tls-to-manage-.patch | 50 ++++++++++++++++++++++
 meta-oe/recipes-support/syslog-ng/syslog-ng.inc    |  5 +++
 2 files changed, 55 insertions(+)
 create mode 100644 meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch

diff --git a/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
new file mode 100644
index 0000000..cc8d110
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
@@ -0,0 +1,50 @@
+configure.ac: add option --enable-thread-tls to manage thread ssl support
+
+Add option --enable-thread-tls to manage the including of thread
+local storage, so we could explicitly disable it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
+---
+ configure.ac | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 474e094..cedca54 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -120,6 +120,9 @@ AC_ARG_ENABLE(memtrace,
+ AC_ARG_ENABLE(ssl,
+               [  --enable-ssl        Enable SSL support.],,enable_ssl="auto")
+ 
++AC_ARG_ENABLE(thread-tls,
++              [  --enable-thread-tls        Enable Thread Transport Layer Security support.],,enable_thread_tls="no")
++
+ AC_ARG_ENABLE(dynamic-linking,
+               [  --enable-dynamic-linking        Link everything dynamically.],,enable_dynamic_linking="auto")
+ 
+@@ -381,12 +384,14 @@ dnl ***************************************************************************
+ dnl Is the __thread keyword available?
+ dnl ***************************************************************************
+ 
+-AC_LINK_IFELSE([AC_LANG_PROGRAM(
+-[[#include <pthread.h>
+-__thread int a;
+-]],
+-[a=0;])],
+-[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++if test "x$enable_thread_tls" != "xno"; then
++    AC_LINK_IFELSE([AC_LANG_PROGRAM(
++    [[#include <pthread.h>
++    __thread int a;
++    ]],
++    [a=0;])],
++    [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++fi
+ 
+ dnl ***************************************************************************
+ dnl How to do static linking?
+-- 
+1.9.1
+
diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index 3cedba6..99cbc09 100644
--- a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -18,6 +18,7 @@ SRC_URI = "http://www.balabit.com/downloads/files/syslog-ng/sources/${PV}/source
            file://syslog-ng.conf \
            file://initscript \
            file://volatiles.03_syslog-ng \
+           file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
 "
 
 inherit autotools systemd pkgconfig update-rc.d update-alternatives
@@ -32,8 +33,12 @@ EXTRA_OECONF = " \
     --with-sysroot=${STAGING_DIR_HOST} \
     --with-libmongo-client=no --disable-mongodb \
     --with-librabbitmq-client=no \
+    ${CONFIG_TLS} \
 "
 
+CONFIG_TLS = "--enable-thread-tls"
+CONFIG_TLS_arm = "${@base_conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
+
 PACKAGECONFIG ??= "openssl \
     ${@base_contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
     ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
-- 
1.9.1




More information about the Openembedded-devel mailing list