Skip to contentSkip to conversation

Option to copy Linaro gconv libs to target

PATCH New Stanislav Vasic 4 participants 8 messages Nov 2, 2013 – Jun 8, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

This patch adds an option for external Linaro toolchains which allows buildroot to copy gconv libs to target.

Also exports GCONV_PATH if folder exists on target. That is needed because some programs (eg. XBMC) dont see gconv libs if GCONV_PATH is not exported.

---
 system/skeleton/etc/profile                        |  6 ++++++
 toolchain/helpers.mk                               | 12 ++++++++++++
 toolchain/toolchain-external/Config.in             |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk |  4 ++++
 4 files changed, 28 insertions(+)
system/skeleton/etc/profile +6 -0
index 31d3180..d7fef65 100644
@@ -8,6 +8,12 @@ export PATH=\
 /usr/bin/X11:\
 /usr/local/bin
 
+# If gconv folder exists, export GCONV_PATH
+
+if [ -d /usr/lib/gconv ]; then
+    export GCONV_PATH = /usr/lib/gconv
+fi
+
 # If running interactively, then:
 if [ "$PS1" ]; then
 
toolchain/helpers.mk +12 -0
index a8944ce..a778cef 100644
@@ -83,6 +83,18 @@ copy_toolchain_lib_root = \
  \
 	echo -n
 
+# Function for Linaro toolchains (EABIhf) that copies gconv libs to target
+# Expects 1 param:
+# $1: toolchain root
+copy_toolchain_gconv = \
+    BASE_DIR="$(strip $1)"; \
+    if [ -d $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv ] ; then \
+	mkdir -p $(TARGET_DIR)/usr/lib/gconv ; \
+	cp -r $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv/* $(TARGET_DIR)/usr/lib/gconv ; \
+    fi; \
+ \
+    echo -n
+
 #
 # Copy the full external toolchain sysroot directory to the staging
 # dir. The operation of this function is rendered a little bit
toolchain/toolchain-external/Config.in +6 -0
index 48b5865..fc328b1 100644
@@ -864,6 +864,12 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL
 	bool
 	select BR2_TOOLCHAIN_USES_MUSL
 
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV
+	bool "Copy GCONV libraries to target"
+	depends on BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_07 \
+	    || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_08 \
+	    || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_09
+
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
 choice
toolchain/toolchain-external/toolchain-external.mk +4 -0
index d41cc7c..c1a3dc7 100644
@@ -496,6 +496,10 @@ define TOOLCHAIN_EXTERNAL_INSTALL_CORE
 			echo "Could not find gdbserver in external toolchain" ; \
 			exit 1 ; \
 		fi ; \
+	fi; \
+	if test "$(BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV)" = "y" ; then \
+		$(call MESSAGE,"Copying external toolchain gconv to target...") ; \
+		$(call copy_toolchain_gconv,$${SYSROOT_DIR}) ; \
 	fi
 endef
 
Signature · 1 line
1.8.3.2
#1 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

Stanislav, All,

On 2013-11-02 22:37 +0100, Stanislav Vasic spake thusly:

Quoted 2 lines

This patch adds an option for external Linaro toolchains which allows buildroot to copy gconv libs to target.

We have another, more generic patch in the making:

    http://patchwork.ozlabs.org/patch/357067/

which I'm still working on:

    https://www.gitorious.org/buildroot/buildroot/commit/9a86575442f9861fa5a4777798fc84b999a12f7f

and which should supersed this patch.

As such, I marked this patch superseded in the pathwork.

Quoted 3 lines

Also exports GCONV_PATH if folder exists on target. That is needed because some programs (eg. XBMC) dont see gconv libs if GCONV_PATH is not exported.

I haven't seen the need to export GCONV_PATH when running my XBMC, neither did Maxime.

What is the reason for exporting GCONV_PATH, if the gconv libs are properly installed in /usr/lib/gconv ?

Is it because Linaro toolchains install them in
libc/usr/lib/arm-linux-gnueabihf/gconv ?

Regards,
Yann E. MORIN.

Quoted 87 lines
---
 system/skeleton/etc/profile                        |  6 ++++++
 toolchain/helpers.mk                               | 12 ++++++++++++
 toolchain/toolchain-external/Config.in             |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk |  4 ++++
 4 files changed, 28 insertions(+)
system/skeleton/etc/profile +6 -0
index 31d3180..d7fef65 100644
@@ -8,6 +8,12 @@ export PATH=\
 /usr/bin/X11:\
 /usr/local/bin
 
+# If gconv folder exists, export GCONV_PATH
+
+if [ -d /usr/lib/gconv ]; then
+    export GCONV_PATH = /usr/lib/gconv
+fi
+
 # If running interactively, then:
 if [ "$PS1" ]; then
 
toolchain/helpers.mk +12 -0
index a8944ce..a778cef 100644
@@ -83,6 +83,18 @@ copy_toolchain_lib_root = \
  \
 	echo -n
 
+# Function for Linaro toolchains (EABIhf) that copies gconv libs to target
+# Expects 1 param:
+# $1: toolchain root
+copy_toolchain_gconv = \
+    BASE_DIR="$(strip $1)"; \
+    if [ -d $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv ] ; then \
+	mkdir -p $(TARGET_DIR)/usr/lib/gconv ; \
+	cp -r $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv/* $(TARGET_DIR)/usr/lib/gconv ; \
+    fi; \
+ \
+    echo -n
+
 #
 # Copy the full external toolchain sysroot directory to the staging
 # dir. The operation of this function is rendered a little bit
toolchain/toolchain-external/Config.in +6 -0
index 48b5865..fc328b1 100644
@@ -864,6 +864,12 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL
 	bool
 	select BR2_TOOLCHAIN_USES_MUSL
 
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV
+	bool "Copy GCONV libraries to target"
+	depends on BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_07 \
+	    || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_08 \
+	    || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_09
+
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
 choice
toolchain/toolchain-external/toolchain-external.mk +4 -0
index d41cc7c..c1a3dc7 100644
@@ -496,6 +496,10 @@ define TOOLCHAIN_EXTERNAL_INSTALL_CORE
 			echo "Could not find gdbserver in external toolchain" ; \
 			exit 1 ; \
 		fi ; \
+	fi; \
+	if test "$(BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV)" = "y" ; then \
+		$(call MESSAGE,"Copying external toolchain gconv to target...") ; \
+		$(call copy_toolchain_gconv,$${SYSROOT_DIR}) ; \
 	fi
 endef
 
Signature · 6 lines
1.8.3.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

Hi Yann, all,

if GCONV_PATH is not exported, xbmc doesn't see it and decoding subtitles or whatever which have special characters (eg cp1250) fails. Also, w/o gconv libs XBMC 13.0+ doesn't draw menus etc. I exported GCONV_PATH in xbmc startup script, but I guess exporting it in profile would also work.

Quoted 139 lines · Yann E. MORIN

Stanislav, All,

On 2013-11-02 22:37 +0100, Stanislav Vasic spake thusly:

Quoted 2 lines

This patch adds an option for external Linaro toolchains which allows buildroot to copy gconv libs to target.

We have another, more generic patch in the making:

    http://patchwork.ozlabs.org/patch/357067/

which I'm still working on:

https://www.gitorious.org/buildroot/buildroot/commit/9a86575442f9861fa5a4777798fc84b999a12f7f

and which should supersed this patch.

As such, I marked this patch superseded in the pathwork.

Quoted 3 lines

Also exports GCONV_PATH if folder exists on target. That is needed because some programs (eg. XBMC) dont see gconv libs if GCONV_PATH is not exported.

I haven't seen the need to export GCONV_PATH when running my XBMC, neither did Maxime.

What is the reason for exporting GCONV_PATH, if the gconv libs are properly installed in /usr/lib/gconv ?

Is it because Linaro toolchains install them in
libc/usr/lib/arm-linux-gnueabihf/gconv ?

Regards,
Yann E. MORIN.

Quoted 30 lines
---
 system/skeleton/etc/profile                        |  6 ++++++
 toolchain/helpers.mk                               | 12 ++++++++++++
 toolchain/toolchain-external/Config.in             |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk |  4 ++++
 4 files changed, 28 insertions(+)
system/skeleton/etc/profile +6 -0
index 31d3180..d7fef65 100644
@@ -8,6 +8,12 @@ export PATH=\
 /usr/bin/X11:\
 /usr/local/bin
 
+# If gconv folder exists, export GCONV_PATH
+
+if [ -d /usr/lib/gconv ]; then
+    export GCONV_PATH = /usr/lib/gconv
+fi
+
 # If running interactively, then:
 if [ "$PS1" ]; then
 
toolchain/helpers.mk +0 -0
index a8944ce..a778cef 100644

toolchain/helpers.mk copy_toolchain_lib_root = \ · line 86

Quoted 4 lines
toolchain/helpers.mk +1 -0
@@ -83,6 +83,18 @@ copy_toolchain_lib_root = \
  \
      echo -n
 
+# Function for Linaro toolchains (EABIhf) that copies gconv libs to

target

toolchain/helpers.mk copy_toolchain_lib_root = \

Quoted 7 lines
toolchain/helpers.mk +7 -0
+# Expects 1 param:
+# $1: toolchain root
+copy_toolchain_gconv = \
+    BASE_DIR="$(strip $1)"; \
+    if [ -d $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv ] ; then \
+     mkdir -p $(TARGET_DIR)/usr/lib/gconv ; \
+     cp -r $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv/*

$(TARGET_DIR)/usr/lib/gconv ; \

Review

Quoted 8 lines
toolchain/helpers.mk +4 -0
+    fi; \
+ \
+    echo -n
+
 #
 # Copy the full external toolchain sysroot directory to the staging
 # dir. The operation of this function is rendered a little bit
(quoted diff) +0 -0

b/toolchain/toolchain-external/Config.in

Review

Quoted 17 lines

index 48b5865..fc328b1 100644

toolchain/toolchain-external/Config.in +6 -0
@@ -864,6 +864,12 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL
      bool
      select BR2_TOOLCHAIN_USES_MUSL
 
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV
+     bool "Copy GCONV libraries to target"
+     depends on BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_07 \
+         || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_08 \
+         || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_09
+
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
 choice
(quoted diff) +0 -0

b/toolchain/toolchain-external/toolchain-external.mk

toolchain/toolchain-external/toolchain-external.mk define TOOLCHAIN_EXTERNAL_INSTALL_CORE · line 496

Quoted 5 lines

index d41cc7c..c1a3dc7 100644

toolchain/toolchain-external/toolchain-external.mk +0 -0
@@ -496,6 +496,10 @@ define TOOLCHAIN_EXTERNAL_INSTALL_CORE
                      echo "Could not find gdbserver in external

toolchain" ; \

toolchain/toolchain-external/toolchain-external.mk define TOOLCHAIN_EXTERNAL_INSTALL_CORE

Quoted 5 lines
toolchain/toolchain-external/toolchain-external.mk +3 -0
                      exit 1 ; \
              fi ; \
+     fi; \
+     if test "$(BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV)" = "y" ; then \
+             $(call MESSAGE,"Copying external toolchain gconv to

target...") ; \

Quoted 11 lines
toolchain/toolchain-external/toolchain-external.mk +1 -1
+             $(call copy_toolchain_gconv,$${SYSROOT_DIR}) ; \
      fi
 endef
 
--

1.8.3.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

--

.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___
      |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There
is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v
conspiracy.  |
Quoted 2 lines

'------------------------------^-------^------------------^--------------------'

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140608/3324f4a3/attachment-0001.html>

#3 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

Hi Stanislav, Yann, all

Quoted 7 lines · Stanislav Vlasic

Hi Yann, all,

if GCONV_PATH is not exported, xbmc doesn't see it and decoding subtitles or whatever which have special characters (eg cp1250) fails. Also, w/o gconv libs XBMC 13.0+ doesn't draw menus etc. I exported GCONV_PATH in xbmc startup script, but I guess exporting it in profile would also work.

Just a quick question, where did you export theses libraries ? As Yann stated, we did not need to export this variable to make it work for XBMC.
And I can assure you that it's nowhere in my env.

Quoted 151 lines
Quoted 140 lines · Yann E. MORIN

Stanislav, All,

On 2013-11-02 22:37 +0100, Stanislav Vasic spake thusly:

Quoted 2 lines

This patch adds an option for external Linaro toolchains which allows buildroot to copy gconv libs to target.

We have another, more generic patch in the making:

    http://patchwork.ozlabs.org/patch/357067/

which I'm still working on:

https://www.gitorious.org/buildroot/buildroot/commit/9a86575442f9861fa5a4777798fc84b999a12f7f

and which should supersed this patch.

As such, I marked this patch superseded in the pathwork.

Quoted 3 lines

Also exports GCONV_PATH if folder exists on target. That is needed because some programs (eg. XBMC) dont see gconv libs if GCONV_PATH is not exported.

I haven't seen the need to export GCONV_PATH when running my XBMC, neither did Maxime.

What is the reason for exporting GCONV_PATH, if the gconv libs are properly installed in /usr/lib/gconv ?

Is it because Linaro toolchains install them in
libc/usr/lib/arm-linux-gnueabihf/gconv ?

Regards,
Yann E. MORIN.

Quoted 86 lines
---
 system/skeleton/etc/profile                        |  6 ++++++
 toolchain/helpers.mk                               | 12 ++++++++++++
 toolchain/toolchain-external/Config.in             |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk |  4 ++++
 4 files changed, 28 insertions(+)
system/skeleton/etc/profile +6 -0
index 31d3180..d7fef65 100644
@@ -8,6 +8,12 @@ export PATH=\
 /usr/bin/X11:\
 /usr/local/bin
 
+# If gconv folder exists, export GCONV_PATH
+
+if [ -d /usr/lib/gconv ]; then
+    export GCONV_PATH = /usr/lib/gconv
+fi
+
 # If running interactively, then:
 if [ "$PS1" ]; then
 
toolchain/helpers.mk +1 -0
index a8944ce..a778cef 100644
@@ -83,6 +83,18 @@ copy_toolchain_lib_root = \
  \
      echo -n
 
+# Function for Linaro toolchains (EABIhf) that copies gconv libs to

target

toolchain/helpers.mk +7 -0
+# Expects 1 param:
+# $1: toolchain root
+copy_toolchain_gconv = \
+    BASE_DIR="$(strip $1)"; \
+    if [ -d $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv ] ; then \
+     mkdir -p $(TARGET_DIR)/usr/lib/gconv ; \
+     cp -r $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv/*

$(TARGET_DIR)/usr/lib/gconv ; \

toolchain/helpers.mk +4 -0
+    fi; \
+ \
+    echo -n
+
 #
 # Copy the full external toolchain sysroot directory to the staging
 # dir. The operation of this function is rendered a little bit
toolchain/toolchain-external/Config.in +6 -0
index 48b5865..fc328b1 100644
@@ -864,6 +864,12 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL
      bool
      select BR2_TOOLCHAIN_USES_MUSL
 
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV
+     bool "Copy GCONV libraries to target"
+     depends on BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_07 \
+         || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_08 \
+         || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_09
+
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
 choice
toolchain/toolchain-external/toolchain-external.mk +4 -0
index d41cc7c..c1a3dc7 100644
@@ -496,6 +496,10 @@ define TOOLCHAIN_EXTERNAL_INSTALL_CORE
                      echo "Could not find gdbserver in external
 toolchain" ; \
                      exit 1 ; \
              fi ; \
+     fi; \
+     if test "$(BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV)" = "y" ; then \
+             $(call MESSAGE,"Copying external toolchain gconv to
 target...") ; \
+             $(call copy_toolchain_gconv,$${SYSROOT_DIR}) ; \
      fi

endef

Quoted 7 lines

--
1.8.3.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

--

.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___
|
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is
no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v
conspiracy.  |
Quoted 1 line

'------------------------------^-------^------------------^--------------------'

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#4 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

Hi,

I export them in /usr/lib/gconv

Quoted 157 lines · Maxime Hadjinlian

Hi Stanislav, Yann, all

Quoted 3 lines · Stanislav Vlasic

Hi Yann, all,

if GCONV_PATH is not exported, xbmc doesn't see it and decoding

subtitles or

Quoted 4 lines

whatever which have special characters (eg cp1250) fails. Also, w/o gconv libs XBMC 13.0+ doesn't draw menus etc. I exported GCONV_PATH in xbmc startup script, but I guess exporting it in profile would also work.

Just a quick question, where did you export theses libraries ? As Yann stated, we did not need to export this variable to make it work for XBMC.
And I can assure you that it's nowhere in my env.

Quoted 10 lines
Quoted 7 lines · Yann E. MORIN

Stanislav, All,

On 2013-11-02 22:37 +0100, Stanislav Vasic spake thusly:

Quoted 2 lines

This patch adds an option for external Linaro toolchains which allows buildroot to copy gconv libs to target.

Quoted 6 lines
Quoted 6 lines

We have another, more generic patch in the making:

    http://patchwork.ozlabs.org/patch/357067/

which I'm still working on:

https://www.gitorious.org/buildroot/buildroot/commit/9a86575442f9861fa5a4777798fc84b999a12f7f

Quoted 110 lines
Quoted 110 lines

and which should supersed this patch.

As such, I marked this patch superseded in the pathwork.

Quoted 3 lines

Also exports GCONV_PATH if folder exists on target. That is needed because some programs (eg. XBMC) dont see gconv libs if GCONV_PATH is not exported.

I haven't seen the need to export GCONV_PATH when running my XBMC, neither did Maxime.

What is the reason for exporting GCONV_PATH, if the gconv libs are properly installed in /usr/lib/gconv ?

Is it because Linaro toolchains install them in
libc/usr/lib/arm-linux-gnueabihf/gconv ?

Regards,
Yann E. MORIN.

Quoted 89 lines
---
 system/skeleton/etc/profile                        |  6 ++++++
 toolchain/helpers.mk                               | 12 ++++++++++++
 toolchain/toolchain-external/Config.in             |  6 ++++++
 toolchain/toolchain-external/toolchain-external.mk |  4 ++++
 4 files changed, 28 insertions(+)
system/skeleton/etc/profile +6 -0
index 31d3180..d7fef65 100644
@@ -8,6 +8,12 @@ export PATH=\
 /usr/bin/X11:\
 /usr/local/bin
 
+# If gconv folder exists, export GCONV_PATH
+
+if [ -d /usr/lib/gconv ]; then
+    export GCONV_PATH = /usr/lib/gconv
+fi
+
 # If running interactively, then:
 if [ "$PS1" ]; then
 
toolchain/helpers.mk +1 -0
index a8944ce..a778cef 100644
@@ -83,6 +83,18 @@ copy_toolchain_lib_root = \
  \
      echo -n
 
+# Function for Linaro toolchains (EABIhf) that copies gconv libs to

target

toolchain/helpers.mk +7 -0
+# Expects 1 param:
+# $1: toolchain root
+copy_toolchain_gconv = \
+    BASE_DIR="$(strip $1)"; \
+    if [ -d $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv ] ; then \
+     mkdir -p $(TARGET_DIR)/usr/lib/gconv ; \
+     cp -r $${BASE_DIR}usr/lib/arm-linux-gnueabihf/gconv/*

$(TARGET_DIR)/usr/lib/gconv ; \

toolchain/helpers.mk +4 -0
+    fi; \
+ \
+    echo -n
+
 #
 # Copy the full external toolchain sysroot directory to the staging
 # dir. The operation of this function is rendered a little bit
toolchain/toolchain-external/Config.in +6 -0
index 48b5865..fc328b1 100644
@@ -864,6 +864,12 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL
      bool
      select BR2_TOOLCHAIN_USES_MUSL
 
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV
+     bool "Copy GCONV libraries to target"
+     depends on BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_07 \
+         || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_08 \
+         || BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_09
+
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
 choice
toolchain/toolchain-external/toolchain-external.mk +4 -0
index d41cc7c..c1a3dc7 100644
@@ -496,6 +496,10 @@ define TOOLCHAIN_EXTERNAL_INSTALL_CORE
                      echo "Could not find gdbserver in external
 toolchain" ; \
                      exit 1 ; \
              fi ; \
+     fi; \
+     if test "$(BR2_TOOLCHAIN_EXTERNAL_LINARO_GCONV)" = "y" ; then \
+             $(call MESSAGE,"Copying external toolchain gconv to
 target...") ; \
+             $(call copy_toolchain_gconv,$${SYSROOT_DIR}) ; \
      fi

endef

--
1.8.3.2

Quoted 8 lines
Quoted 8 lines
Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

--

.-----------------.--------------------.------------------.--------------------.

Quoted 5 lines
Quoted 5 lines
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___
|
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/
Quoted 15 lines

There is

Quoted 5 lines
Quoted 5 lines

no |

| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v
conspiracy.  |

'------------------------------^-------^------------------^--------------------'

Quoted 7 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140608/daca30e2/attachment.html>

#5 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

In reply to Maxime Hadjinlian

Maxime, Stanislav, All,

On 2014-06-08 20:53 +0200, Maxime Hadjinlian spake thusly:

Quoted 8 lines · Stanislav Vlasic
Quoted 7 lines

Hi Yann, all,

if GCONV_PATH is not exported, xbmc doesn't see it and decoding subtitles or whatever which have special characters (eg cp1250) fails. Also, w/o gconv libs XBMC 13.0+ doesn't draw menus etc. I exported GCONV_PATH in xbmc startup script, but I guess exporting it in profile would also work.

Quoted 4 lines

Just a quick question, where did you export theses libraries ? As Yann stated, we did not need to export this variable to make it work for XBMC.
And I can assure you that it's nowhere in my env.

I think the problem Stanislav had is that he is using a Linaro toolchain, which puts the gconv module in /usr/lib/arm-linux-gnueabihf and so expects them in that location at runtime.

But since Buildroot does not follow the multi-arch convention (and rightfully, IMHO), it does not work for Stanislav.

I'm not very happy with the exporting of GCONV_PATH as-is. I'd prefer we find another solution. I'll look into that.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

In reply to Stanislav Vasic

Stanislav, All,

On 2013-11-02 22:37 +0100, Stanislav Vasic spake thusly:

Quoted 3 lines

Also exports GCONV_PATH if folder exists on target. That is needed because some programs (eg. XBMC) dont see gconv libs if GCONV_PATH is not exported.

[--SNIP--]

system/skeleton/etc/profile export PATH=\ · line 15

Quoted 13 lines
system/skeleton/etc/profile +5 -0
index 31d3180..d7fef65 100644
@@ -8,6 +8,12 @@ export PATH=\
 /usr/bin/X11:\
 /usr/local/bin
 
+# If gconv folder exists, export GCONV_PATH
+
+if [ -d /usr/lib/gconv ]; then
+    export GCONV_PATH = /usr/lib/gconv
+fi

This will only work for programs started from a login shell. Programs that are started /automatically/ (eg. by startup scripts, like we do for XBMC) will not have that variable in their environment, so will still fail to find the gconv libs.

I've looked at the glibc source code, and besides the GCONV_PATH solution, I can't see another wayt to tell where to look for the gconv libs.

All this multi-arch stuff is so utterly broken, and there is not even a real use-case for it. Not even a Debian developper I talked to, which was involved in the mess, was able to explain what the reason was, that was not already covered by existing mechanisms. That's a shame...

I still have to look if it is possible to pass an alternative path to the dynamic linker in one of its config files...

Sigh...

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#7 lore raw

PATCH 1/1 Option to copy Linaro gconv libs to target

Quoted 6 lines · On Sun, 8 Jun 2014 21:20:43 +0200 "Yann E. MORIN" <[email protected]>…

All this multi-arch stuff is so utterly broken, and there is not even a real use-case for it. Not even a Debian developper I talked to, which was involved in the mess, was able to explain what the reason was, that was not already covered by existing mechanisms. That's a shame...

rant

You mean this sort of c...?

     11193:   file=libc.so.6 [0];  needed by ./busybox [0]
     11193:   find library=libc.so.6 [0]; searching
     11193:    search path=../lib/tls/v7l/neon/vfp:../lib/tls/v7l/neon:../lib/tls/v7l/vfp:../lib/tls/v7l:../lib/tls/neon/vfp:../lib/tls/neon:../lib/tls/vfp:../lib/tls:../lib/v7l/neon/vfp:../lib/v7l/neon:../lib/v7l/vfp:../lib/v7l:../lib/neon/vfp:../lib/neon:../li
b/vfp:../lib          (RUNPATH from file ./busybox)
     11193:     trying file=../lib/tls/v7l/neon/vfp/libc.so.6
     11193:     trying file=../lib/tls/v7l/neon/libc.so.6
     11193:     trying file=../lib/tls/v7l/vfp/libc.so.6
     11193:     trying file=../lib/tls/v7l/libc.so.6
     11193:     trying file=../lib/tls/neon/vfp/libc.so.6
     11193:     trying file=../lib/tls/neon/libc.so.6
     11193:     trying file=../lib/tls/vfp/libc.so.6
     11193:     trying file=../lib/tls/libc.so.6
     11193:     trying file=../lib/v7l/neon/vfp/libc.so.6
     11193:     trying file=../lib/v7l/neon/libc.so.6
     11193:     trying file=../lib/v7l/vfp/libc.so.6
     11193:     trying file=../lib/v7l/libc.so.6
     11193:     trying file=../lib/neon/vfp/libc.so.6
     11193:     trying file=../lib/neon/libc.so.6
     11193:     trying file=../lib/vfp/libc.so.6
     11193:     trying file=../lib/libc.so.6

From one of today's builds of glibc-2.19 for a Cortex-A8. The &$#^&^ loader is looking everywhere except under the bed.

Only one (the last) of the sixteen is where I told the loader to look. Sure am glad that someone thinks they know better than I where I put libc.

/rant
Mike