Patchwork cc/gcc: Add Fortran support for Baremetal build

login
register
mail settings
Submitter Zhenqiang Chen
Date Nov. 20, 2013, 9:37 a.m.
Message ID <CACgzC7D5HCVS-qX=ydcQphNFH=VGgJzTdZWQWaLKAv-CdE8crA@mail.gmail.com>
Download mbox | patch
Permalink /patch/292703/
State Accepted
Commit e2e0f34eab6c
Headers show

Comments

Zhenqiang Chen - Nov. 20, 2013, 9:37 a.m.
# HG changeset patch
# User Zhenqiang Chen <zhenqiang.chen@linaro.org>
# Date 1384843442 -28800
# Node ID 3ba918b278a4b1553a49819d5b2feecdea822697
# Parent  7e569a9cb5fd3ab591bb307328b947a5b7312cba
cc/gcc: Add Fortran support for Baremetal build

Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>

bool      : no
 #   build_staticlinked  : build statically linked or not            :
bool      : no
 #   build_manuals       : whether to build manuals or not           :
bool      : no
 #   cflags              : cflags to use                             :
string    : (empty)
@@ -173,6 +174,7 @@
     local mode
     local build_libgcc=no
     local build_libstdcxx=no
+    local build_libgfortran=no
     local build_staticlinked=no
     local build_manuals=no
     local host
@@ -457,6 +459,12 @@
         core_targets+=( target-libstdc++-v3 )
     fi

+    if [    "${build_libgfortran}" = "yes"    \
+         -a "${CT_CC_LANG_FORTRAN}"  = "y"    \
+       ]; then
+        core_targets+=( target-libgfortran )
+    fi
+
     CT_DoLog EXTRA "Building gcc"
     CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}"

@@ -521,6 +529,7 @@
         build_final_opts+=( "mode=baremetal" )
         build_final_opts+=( "build_libgcc=yes" )
         build_final_opts+=( "build_libstdcxx=yes" )
+        build_final_opts+=( "build_libgfortran=yes" )
         if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
             build_final_opts+=( "build_staticlinked=yes" )
         fi
@@ -557,6 +566,7 @@
         final_opts+=( "mode=baremetal" )
         final_opts+=( "build_libgcc=yes" )
         final_opts+=( "build_libstdcxx=yes" )
+        final_opts+=( "build_libgfortran=yes" )
         if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
             final_opts+=( "build_staticlinked=yes" )
         fi

--
For unsubscribe information see http://sourceware.org/lists.html#faq
Yann E. MORIN - Dec. 12, 2013, 10:19 p.m.
Zhenqiang, All,

On 2013-11-20 17:37 +0800, Zhenqiang Chen spake thusly:
> # HG changeset patch
> # User Zhenqiang Chen <zhenqiang.chen@linaro.org>
> # Date 1384843442 -28800
> # Node ID 3ba918b278a4b1553a49819d5b2feecdea822697
> # Parent  7e569a9cb5fd3ab591bb307328b947a5b7312cba
> cc/gcc: Add Fortran support for Baremetal build
> 
> Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[--SNIP--]
> diff -r 7e569a9cb5fd -r 3ba918b278a4 scripts/build/cc/gcc.sh
> --- a/scripts/build/cc/gcc.sh    Sat Nov 16 18:14:45 2013 +0100
> +++ b/scripts/build/cc/gcc.sh    Tue Nov 19 14:44:02 2013 +0800
> @@ -164,6 +164,7 @@
>  #   lang_list           : the list of languages to build            :
> string    : (empty)
>  #   build_libgcc        : build libgcc or not                       :
> bool      : no
>  #   build_libstdcxx     : build libstdc++ or not                    :
> bool      : no
> +#   build_libgfortran   : build libgfortran or not                  :
> bool      : no
>  #   build_staticlinked  : build statically linked or not            :
> bool      : no
>  #   build_manuals       : whether to build manuals or not           :
> bool      : no
>  #   cflags              : cflags to use                             :
> string    : (empty)

Woops... This patch is highly broken. I'll fix locally, no need to resend.

> @@ -173,6 +174,7 @@
>      local mode
>      local build_libgcc=no
>      local build_libstdcxx=no
> +    local build_libgfortran=no
>      local build_staticlinked=no
>      local build_manuals=no
>      local host
> @@ -457,6 +459,12 @@
>          core_targets+=( target-libstdc++-v3 )
>      fi
> 
> +    if [    "${build_libgfortran}" = "yes"    \
> +         -a "${CT_CC_LANG_FORTRAN}"  = "y"    \
> +       ]; then
> +        core_targets+=( target-libgfortran )
> +    fi
> +
>      CT_DoLog EXTRA "Building gcc"
>      CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/all-}"
> 
> @@ -521,6 +529,7 @@
>          build_final_opts+=( "mode=baremetal" )
>          build_final_opts+=( "build_libgcc=yes" )
>          build_final_opts+=( "build_libstdcxx=yes" )
> +        build_final_opts+=( "build_libgfortran=yes" )
>          if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
>              build_final_opts+=( "build_staticlinked=yes" )
>          fi
> @@ -557,6 +566,7 @@
>          final_opts+=( "mode=baremetal" )
>          final_opts+=( "build_libgcc=yes" )
>          final_opts+=( "build_libstdcxx=yes" )
> +        final_opts+=( "build_libgfortran=yes" )
>          if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
>              final_opts+=( "build_staticlinked=yes" )
>          fi
Yann E. MORIN - Dec. 12, 2013, 10:32 p.m.
Zhenqiang, All,

Your patch:
    cc/gcc: Add Fortran support for Baremetal build

has been applied as: #e2e0f34eab6c
    http://crosstool-ng.org/hg/crosstool-ng/rev/e2e0f34eab6c

Thank you!

Regards,
Yann E. MORIN.



--
For unsubscribe information see http://sourceware.org/lists.html#faq

Patch

diff -r 7e569a9cb5fd -r 3ba918b278a4 config/cc.in
--- a/config/cc.in    Sat Nov 16 18:14:45 2013 +0100
+++ b/config/cc.in    Tue Nov 19 14:44:02 2013 +0800
@@ -46,8 +46,6 @@ 
       Only select this if you know that your specific version of the
       compiler supports this language.

-if ! BARE_METAL
-
 config CC_LANG_FORTRAN
     bool
     prompt "Fortran"
@@ -58,6 +56,8 @@ 
       Only select this if you know that your specific version of the
       compiler supports this language.

+if ! BARE_METAL
+
 config CC_LANG_JAVA
     bool
     prompt "Java"
diff -r 7e569a9cb5fd -r 3ba918b278a4 scripts/build/cc/gcc.sh
--- a/scripts/build/cc/gcc.sh    Sat Nov 16 18:14:45 2013 +0100
+++ b/scripts/build/cc/gcc.sh    Tue Nov 19 14:44:02 2013 +0800
@@ -164,6 +164,7 @@ 
 #   lang_list           : the list of languages to build            :
string    : (empty)
 #   build_libgcc        : build libgcc or not                       :
bool      : no
 #   build_libstdcxx     : build libstdc++ or not                    :
bool      : no
+#   build_libgfortran   : build libgfortran or not                  :