diff mbox

package/ncurses: fix builds with both shared and static libs

Message ID 1419193723-7911-1-git-send-email-yann.morin.1998@free.fr
State Accepted
Headers show

Commit Message

Yann E. MORIN Dec. 21, 2014, 8:28 p.m. UTC
When both shared and static libs are enabled, we have two shell
constructs to run, but they are not properly separated, leading to build
failures like:

    ln -sf libncursesw.a /home/idnc_sk/IOLINUX/builds/micro-x86_64-corei7/
    output/host/usr/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libcurse
    s.a for lib in libncurses libmenu libpanel libform; do ln -sf ${lib}w.
    so /home/idnc_sk/IOLINUX/builds/micro-x86_64-corei7/output/host/usr/x8
    6_64-buildroot-linux-uclibc/sysroot/usr/lib/${lib}.so; done
    /bin/bash: -c: line 0: syntax error near unexpected token `do'
    /bin/bash: -c: line 0: `ln -sf libncursesw.a /home/idnc_sk/IOLINUX/bui
    lds/micro-x86_64-corei7/output/host/usr/x86_64-buildroot-linux-uclibc/
    sysroot/usr/lib/libcurses.a for lib in libncurses libmenu libpanel lib
    form; do ln -sf ${lib}w.so /home/idnc_sk/IOLINUX/builds/micro-x86_64-c
    orei7/output/host/usr/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/${
    lib}.so; done'

As can be seen, there is a missing semi-colon ';' between the symlink
command and the for loop:

    ln -sf libncursesw.a [...]/libcurses.a for lib in [...]

Fix that by adding a semi-colon after each first shell constructs, to
properly separate the two. If the second one is not enabled (i.e. for a
static-only build), there is a trailing semi-colon, but that's perfectly
valid shell syntax.

Reported-by: idnc_sk on IRC
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/ncurses/ncurses.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni Dec. 21, 2014, 9:02 p.m. UTC | #1
Dear Yann E. MORIN,

On Sun, 21 Dec 2014 21:28:43 +0100, Yann E. MORIN wrote:
> When both shared and static libs are enabled, we have two shell
> constructs to run, but they are not properly separated, leading to build
> failures like:
> 
>     ln -sf libncursesw.a /home/idnc_sk/IOLINUX/builds/micro-x86_64-corei7/
>     output/host/usr/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/libcurse
>     s.a for lib in libncurses libmenu libpanel libform; do ln -sf ${lib}w.
>     so /home/idnc_sk/IOLINUX/builds/micro-x86_64-corei7/output/host/usr/x8
>     6_64-buildroot-linux-uclibc/sysroot/usr/lib/${lib}.so; done
>     /bin/bash: -c: line 0: syntax error near unexpected token `do'
>     /bin/bash: -c: line 0: `ln -sf libncursesw.a /home/idnc_sk/IOLINUX/bui
>     lds/micro-x86_64-corei7/output/host/usr/x86_64-buildroot-linux-uclibc/
>     sysroot/usr/lib/libcurses.a for lib in libncurses libmenu libpanel lib
>     form; do ln -sf ${lib}w.so /home/idnc_sk/IOLINUX/builds/micro-x86_64-c
>     orei7/output/host/usr/x86_64-buildroot-linux-uclibc/sysroot/usr/lib/${
>     lib}.so; done'
> 
> As can be seen, there is a missing semi-colon ';' between the symlink
> command and the for loop:
> 
>     ln -sf libncursesw.a [...]/libcurses.a for lib in [...]
> 
> Fix that by adding a semi-colon after each first shell constructs, to
> properly separate the two. If the second one is not enabled (i.e. for a
> static-only build), there is a trailing semi-colon, but that's perfectly
> valid shell syntax.
> 
> Reported-by: idnc_sk on IRC
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Applied, thanks.

Thomas
diff mbox

Patch

diff --git a/package/ncurses/ncurses.mk b/package/ncurses/ncurses.mk
index 47378f7..5f9e4bd 100644
--- a/package/ncurses/ncurses.mk
+++ b/package/ncurses/ncurses.mk
@@ -86,10 +86,10 @@  define NCURSES_LINK_PC
 endef
 
 NCURSES_LINK_TARGET_LIBS = \
-	$(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_STATIC,$(TARGET_DIR))) \
+	$(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_STATIC,$(TARGET_DIR));) \
 	$(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_SHARED,$(TARGET_DIR)))
 NCURSES_LINK_STAGING_LIBS = \
-	$(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_STATIC,$(STAGING_DIR))) \
+	$(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_STATIC,$(STAGING_DIR));) \
 	$(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),$(call NCURSES_LINK_LIBS_SHARED,$(STAGING_DIR)))
 
 NCURSES_LINK_STAGING_PC = $(call NCURSES_LINK_PC,$(STAGING_DIR))