Patchwork connman: Fix linking with gold linker

login
register
mail settings
Submitter Khem Raj
Date April 8, 2012, 5 a.m.
Message ID <1333861256-22395-1-git-send-email-raj.khem@gmail.com>
Download mbox | patch
Permalink /patch/25295/
State Accepted
Commit 0bc79de634841c57868be3d7d8b0fd8bf47ccc18
Headers show

Comments

Khem Raj - April 8, 2012, 5 a.m.
Fixes errors like below

/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
error: hidden symbol '__start___debug' is not defined locally
/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
error: hidden symbol '__stop___debug' is not defined locally
collect2: ld returned 1 exit status
make[1]: *** [plugins/loopback.la] Error 1

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...ange-visibility-to-default-for-debug-symb.patch |   35 ++++++++++++++++++++
 meta/recipes-connectivity/connman/connman_0.79.bb  |    3 +-
 2 files changed, 37 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch
Saul Wold - April 27, 2012, 9:28 p.m.
On 04/07/2012 10:00 PM, Khem Raj wrote:
> Fixes errors like below
>
> /home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
> error: hidden symbol '__start___debug' is not defined locally
> /home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
> error: hidden symbol '__stop___debug' is not defined locally
> collect2: ld returned 1 exit status
> make[1]: *** [plugins/loopback.la] Error 1
>
> Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ---
>   ...ange-visibility-to-default-for-debug-symb.patch |   35 ++++++++++++++++++++
>   meta/recipes-connectivity/connman/connman_0.79.bb  |    3 +-
>   2 files changed, 37 insertions(+), 1 deletions(-)
>   create mode 100644 meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch
>
> diff --git a/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch b/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch
> new file mode 100644
> index 0000000..e6f03e6
> --- /dev/null
> +++ b/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch
> @@ -0,0 +1,35 @@
> +From 4ddaf78dad5a9ee4a0658235f71b75132192123e Mon Sep 17 00:00:00 2001
> +From: Khem Raj<raj.khem@gmail.com>
> +Date: Sat, 7 Apr 2012 18:52:12 -0700
> +Subject: [PATCH] plugin.h: Change visibility to default for debug symbols
> +
> +gold refuses to link in undefined weak symbols which
> +have hidden visibility
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +
> +
> +Upstream-Status: Pending
> +---
> + include/plugin.h |    4 ++--
> + 1 files changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/include/plugin.h b/include/plugin.h
> +index 692a4e5..a9361c3 100644
> +--- a/include/plugin.h
> ++++ b/include/plugin.h
> +@@ -89,9 +89,9 @@ struct connman_plugin_desc {
> + #else
> + #define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
> + 		extern struct connman_debug_desc __start___debug[] \
> +-				__attribute__ ((weak, visibility("hidden"))); \
> ++				__attribute__ ((weak, visibility("default"))); \
> + 		extern struct connman_debug_desc __stop___debug[] \
> +-				__attribute__ ((weak, visibility("hidden"))); \
> ++				__attribute__ ((weak, visibility("default"))); \
> + 		extern struct connman_plugin_desc connman_plugin_desc \
> + 				__attribute__ ((visibility("default"))); \
> + 		struct connman_plugin_desc connman_plugin_desc = { \
> +--
> +1.7.5.4
> +
> diff --git a/meta/recipes-connectivity/connman/connman_0.79.bb b/meta/recipes-connectivity/connman/connman_0.79.bb
> index f87c4dd..da48e94 100644
> --- a/meta/recipes-connectivity/connman/connman_0.79.bb
> +++ b/meta/recipes-connectivity/connman/connman_0.79.bb
> @@ -6,6 +6,7 @@ SRC_URI  = "git://git.kernel.org/pub/scm/network/connman/connman.git \
>               file://add_xuser_dbus_permission.patch \
>               file://ethernet_default.patch \
>               file://disable_alg-test.patch \
> +            file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
>               file://connman"
>   S = "${WORKDIR}/git"
> -PR = "r1"
> +PR = "r2"

Merged into OE-Core

Thanks
	Sau!

Patch

diff --git a/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch b/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch
new file mode 100644
index 0000000..e6f03e6
--- /dev/null
+++ b/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch
@@ -0,0 +1,35 @@ 
+From 4ddaf78dad5a9ee4a0658235f71b75132192123e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 7 Apr 2012 18:52:12 -0700
+Subject: [PATCH] plugin.h: Change visibility to default for debug symbols
+
+gold refuses to link in undefined weak symbols which
+have hidden visibility
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+
+Upstream-Status: Pending
+---
+ include/plugin.h |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/plugin.h b/include/plugin.h
+index 692a4e5..a9361c3 100644
+--- a/include/plugin.h
++++ b/include/plugin.h
+@@ -89,9 +89,9 @@ struct connman_plugin_desc {
+ #else
+ #define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
+ 		extern struct connman_debug_desc __start___debug[] \
+-				__attribute__ ((weak, visibility("hidden"))); \
++				__attribute__ ((weak, visibility("default"))); \
+ 		extern struct connman_debug_desc __stop___debug[] \
+-				__attribute__ ((weak, visibility("hidden"))); \
++				__attribute__ ((weak, visibility("default"))); \
+ 		extern struct connman_plugin_desc connman_plugin_desc \
+ 				__attribute__ ((visibility("default"))); \
+ 		struct connman_plugin_desc connman_plugin_desc = { \
+-- 
+1.7.5.4
+
diff --git a/meta/recipes-connectivity/connman/connman_0.79.bb b/meta/recipes-connectivity/connman/connman_0.79.bb
index f87c4dd..da48e94 100644
--- a/meta/recipes-connectivity/connman/connman_0.79.bb
+++ b/meta/recipes-connectivity/connman/connman_0.79.bb
@@ -6,6 +6,7 @@  SRC_URI  = "git://git.kernel.org/pub/scm/network/connman/connman.git \
             file://add_xuser_dbus_permission.patch \
             file://ethernet_default.patch \
             file://disable_alg-test.patch \
+            file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
             file://connman"
 S = "${WORKDIR}/git"
-PR = "r1"
+PR = "r2"