diff mbox

[1/5] libc/musl: Remove gcc core pass-1 from musl-libc build

Message ID 1409864217-17035-1-git-send-email-bryanhundven@gmail.com
State Superseded
Headers show

Commit Message

Bryan Hundven Sept. 4, 2014, 8:56 p.m. UTC
In an effort to make the toolchain build simpler, remove the need for
the pass-1 build of gcc.

Also, let musl's configure script decide if we need the gcc wrapper or
not.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
---
 config/libc/musl.in        |  2 +-
 scripts/build/libc/musl.sh | 25 +++----------------------
 2 files changed, 4 insertions(+), 23 deletions(-)

Comments

Yann E. MORIN Sept. 4, 2014, 10:33 p.m. UTC | #1
Bryan, All,

On 2014-09-04 13:56 -0700, Bryan Hundven spake thusly:
> In an effort to make the toolchain build simpler, remove the need for
> the pass-1 build of gcc.
> 
> Also, let musl's configure script decide if we need the gcc wrapper or
> not.

Well, sh4rm4 said on IRC that we definitely do not need the wrapper:

00:11 < sh4rm4> musl-gcc is a wrapper to use musl on a glibc sys
00:11 <@y_morin> sh4rm4: So if we build our gcc with --target=blabla-musl
                 we do not need the wrapper, do we?
00:11 < sh4rm4> works by fixing up gcc's paths using a specs file
00:11 < sh4rm4> no

So, I think we still want to explicitly disable it.

> Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
> ---
>  config/libc/musl.in        |  2 +-
>  scripts/build/libc/musl.sh | 25 +++----------------------
>  2 files changed, 4 insertions(+), 23 deletions(-)
> 
> diff --git a/config/libc/musl.in b/config/libc/musl.in
> index b3bec26..8f393b2 100644
> --- a/config/libc/musl.in
> +++ b/config/libc/musl.in
> @@ -3,7 +3,7 @@
>  ## depends on ! WINDOWS && ! BARE_METAL
>  ##
>  ## select LIBC_SUPPORT_THREADS_NATIVE
> -## select CC_CORE_PASSES_NEEDED
> +## select CC_CORE_PASS_2_NEEDED
>  ##
>  ## help Musl is a new standard library to power a new generation of Linux-based
>  ## help devices. musl is lightweight, fast, simple, free, and strives to be
> diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh
> index 7172cf2..6dbf657 100644
> --- a/scripts/build/libc/musl.sh
> +++ b/scripts/build/libc/musl.sh
> @@ -48,7 +48,7 @@ do_libc_configure() {
>      # NOTE: musl handles the build/host/target a little bit differently
>      # then one would expect:
>      #   build   : not used
> -    #   host    : the machine building musl
> +    #   host    : the machine musl runs on
>      #   target  : the machine musl runs on
>      CT_DoExecLog CFG                \
>      CFLAGS="${extra_cflags[@]}"     \
> @@ -56,30 +56,11 @@ do_libc_configure() {
>      ./configure                     \
>          --host="${CT_TARGET}"       \
>          --target="${CT_TARGET}"     \
> -        --prefix="/usr"             \
> -        --disable-gcc-wrapper
> +        --prefix="/usr"
>  }
>  
>  do_libc_start_files() {
> -    CT_DoStep INFO "Installing C library headers"
> -
> -    # Simply copy files until musl has the ability to build out-of-tree
> -    CT_DoLog EXTRA "Copying sources to build directory"
> -    CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/musl-${CT_LIBC_VERSION}" \
> -                            "${CT_BUILD_DIR}/build-libc-headers"
> -    cd "${CT_BUILD_DIR}/build-libc-headers"
> -
> -    do_libc_configure
> -
> -    CT_DoLog EXTRA "Installing headers"
> -    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install-headers
> -
> -    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" \
> -        crt/crt1.o crt/crti.o crt/crtn.o
> -    CT_DoExecLog ALL cp -av crt/crt*.o "${CT_SYSROOT_DIR}/usr/lib"
> -    CT_DoExecLog ALL ${CT_TARGET}-gcc -nostdlib \
> -        -nostartfiles -shared -x c /dev/null -o "${CT_SYSROOT_DIR}/usr/lib/libc.so"
> -    CT_EndStep
> +    :

As seen on IRC: no headers installed, you picked your host headers. ;-)

Regards,
Yann E. MORIN.

>  }
>  
>  do_libc() {
> -- 
> 2.1.0
>
diff mbox

Patch

diff --git a/config/libc/musl.in b/config/libc/musl.in
index b3bec26..8f393b2 100644
--- a/config/libc/musl.in
+++ b/config/libc/musl.in
@@ -3,7 +3,7 @@ 
 ## depends on ! WINDOWS && ! BARE_METAL
 ##
 ## select LIBC_SUPPORT_THREADS_NATIVE
-## select CC_CORE_PASSES_NEEDED
+## select CC_CORE_PASS_2_NEEDED
 ##
 ## help Musl is a new standard library to power a new generation of Linux-based
 ## help devices. musl is lightweight, fast, simple, free, and strives to be
diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh
index 7172cf2..6dbf657 100644
--- a/scripts/build/libc/musl.sh
+++ b/scripts/build/libc/musl.sh
@@ -48,7 +48,7 @@  do_libc_configure() {
     # NOTE: musl handles the build/host/target a little bit differently
     # then one would expect:
     #   build   : not used
-    #   host    : the machine building musl
+    #   host    : the machine musl runs on
     #   target  : the machine musl runs on
     CT_DoExecLog CFG                \
     CFLAGS="${extra_cflags[@]}"     \
@@ -56,30 +56,11 @@  do_libc_configure() {
     ./configure                     \
         --host="${CT_TARGET}"       \
         --target="${CT_TARGET}"     \
-        --prefix="/usr"             \
-        --disable-gcc-wrapper
+        --prefix="/usr"
 }
 
 do_libc_start_files() {
-    CT_DoStep INFO "Installing C library headers"
-
-    # Simply copy files until musl has the ability to build out-of-tree
-    CT_DoLog EXTRA "Copying sources to build directory"
-    CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/musl-${CT_LIBC_VERSION}" \
-                            "${CT_BUILD_DIR}/build-libc-headers"
-    cd "${CT_BUILD_DIR}/build-libc-headers"
-
-    do_libc_configure
-
-    CT_DoLog EXTRA "Installing headers"
-    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install-headers
-
-    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" \
-        crt/crt1.o crt/crti.o crt/crtn.o
-    CT_DoExecLog ALL cp -av crt/crt*.o "${CT_SYSROOT_DIR}/usr/lib"
-    CT_DoExecLog ALL ${CT_TARGET}-gcc -nostdlib \
-        -nostartfiles -shared -x c /dev/null -o "${CT_SYSROOT_DIR}/usr/lib/libc.so"
-    CT_EndStep
+    :
 }
 
 do_libc() {