diff mbox

[PATCHv3,for,next,1/2] toolchain-external: improve lib subdirectory matching

Message ID 1424259375-20288-2-git-send-email-patrickdepinguin@gmail.com
State Accepted
Headers show

Commit Message

Thomas De Schampheleire Feb. 18, 2015, 11:36 a.m. UTC
From: Bai Yingjie <byj.tea@gmail.com>

The toolchain from the Cavium Networks Octeon SDK provides a sysroot
with library directories lib32, lib32-fp, lib64 and lib64-fp. The -fp
variants are used for processors with hardware floating point unit, such
as the Octeon III variants.

When specifying -march=octeon3 in BR2_TARGET_OPTIMIZATION, the toolchain
will use lib32-fp, but currently Buildroot does not accept that pattern.

This patch improves the matching by accepting lib(32|64)?([^/]*)? as lib
directory name.

Signed-off-by: Bai Yingjie <byj.tea@gmail.com>
[ThomasDS: update commit message]
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
---
 toolchain/toolchain-external/toolchain-external.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni July 13, 2015, 3:29 p.m. UTC | #1
Dear Thomas De Schampheleire,

On Wed, 18 Feb 2015 12:36:14 +0100, Thomas De Schampheleire wrote:
> From: Bai Yingjie <byj.tea@gmail.com>
> 
> The toolchain from the Cavium Networks Octeon SDK provides a sysroot
> with library directories lib32, lib32-fp, lib64 and lib64-fp. The -fp
> variants are used for processors with hardware floating point unit, such
> as the Octeon III variants.
> 
> When specifying -march=octeon3 in BR2_TARGET_OPTIMIZATION, the toolchain
> will use lib32-fp, but currently Buildroot does not accept that pattern.
> 
> This patch improves the matching by accepting lib(32|64)?([^/]*)? as lib
> directory name.
> 
> Signed-off-by: Bai Yingjie <byj.tea@gmail.com>
> [ThomasDS: update commit message]
> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
> ---
>  toolchain/toolchain-external/toolchain-external.mk | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

I've added a comment above the change in the code to illustrate a bit
the various cases we are trying to handle in these complicated sed
expressions. And then I applied your patch. Thanks!

Thomas
diff mbox

Patch

diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index 999a354..e05957c 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -434,13 +434,13 @@  endef
 
 # Returns the sysroot location for the given compiler + flags
 define toolchain_find_sysroot
-$$(echo -n $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:(usr/)?lib(32|64)?/([^/]*/)?libc\.a::')
+$$(echo -n $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:(usr/)?lib(32|64)?([^/]*)?/([^/]*/)?libc\.a::')
 endef
 
 # Returns the lib subdirectory for the given compiler + flags (i.e
 # typically lib32 or lib64 for some toolchains)
 define toolchain_find_libdir
-$$(echo -n $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64)?)/([^/]*/)?libc.a:\2:')
+$$(echo -n $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64)?([^/]*)?)/([^/]*/)?libc.a:\2:')
 endef
 
 # Checks for an already installed toolchain: check the toolchain