This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1 of 1] Fixes the issue with {e, }libc addons having short and long names (such as


NicolÃs, All,

On Saturday 28 May 2011 03:07:36 NicolÃs Reynolds wrote:
> # HG changeset patch
> # User "NicolÃs Reynolds" <fauno@kiwwwi.com.ar>
> # Date 1306544550 10800
> # Node ID a15a7b4ba12aa6588efe7256f0cd72344b3369b2
> # Parent  30644208c955f485b35219813a9ca8dc9b22fcdf
> Fixes the issue with {e,}libc addons having short and long names (such as
> eglibc-ports-2_13 and ports), which caused configure scripts to run
> through them twice and thus configuring incorrectly.
> 
> For instance, the mips64el-n32-linux-gnu toolchain would be recognized
> correctly first, but then the second pass would change it to mips32,
> building a mixed MIPS-III N32 and MIPS-I libc.
> 

Please, you need to add a SoB line (see end of mail).

> diff -r 30644208c955 -r a15a7b4ba12a scripts/build/libc/eglibc.sh
> --- a/scripts/build/libc/eglibc.sh	Thu May 26 22:51:03 2011 +0200
> +++ b/scripts/build/libc/eglibc.sh	Fri May 27 22:02:30 2011 -0300
> @@ -103,25 +103,36 @@
>      CT_Extract "eglibc-${CT_LIBC_VERSION}"
>      CT_Patch "eglibc" "${CT_LIBC_VERSION}"
>  
> -    # C library addons
> +    # C library addons 

Spurious trailing space. I will remove.

>      for addon in $(do_libc_add_ons_list " "); do
>          # NPTL addon is not to be extracted, in any case
>          [ "${addon}" = "nptl" ] && continue || true
>          CT_Pushd "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}"
>          CT_Extract nochdir "eglibc-${addon}-${CT_LIBC_VERSION}"
> +
> +        CT_TestAndAbort "Error in add-on '${addon}': both short and long names in tarball" \ 
> +            -d "${addon}" -a -d "eglibc-${addon}-${CT_LIBC_VERSION}"
> +
>          # Some addons have the 'long' name, while others have the
>          # 'short' name, but patches are non-uniformly built with
>          # either the 'long' or 'short' name, whatever the addons name
> -        # so we have to make symlinks from the existing to the missing
> -        # Fortunately for us, [ -d foo ], when foo is a symlink to a
> -        # directory, returns true!
> -        [ -d "${addon}" ] || ln -s "eglibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
> -        [ -d "eglibc-${addon}-${CT_LIBC_VERSION}" ] || ln -s "${addon}" "eglibc-${addon}-${CT_LIBC_VERSION}"
> +        # but we prefer the 'short' name and avoid duplicates.
> +        if [ -d "eglibc-${addon}-${CT_LIBC_VERSION}" ]; then
> +            mv "eglibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
> +        fi
> +
> +        ln -s "${addon}" "eglibc-${addon}-${CT_LIBC_VERSION}"
> +
>          CT_Patch nochdir "eglibc" "${addon}-${CT_LIBC_VERSION}"
> +
> +        # Remove the long name since it can confuse configure scripts to run
> +        # the same source twice.
> +        rm "eglibc-${addon}-${CT_LIBC_VERSION}"
> +
>          CT_Popd
>      done
>  
> -    # The configure files may be older than the configure.in files
> +    # The configure files may be older than the configure.in files 

Spurious trailing space. I will remove.

>      # if using a snapshot (or even some tarballs). Fake them being
>      # up to date.
>      find "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}" -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
> diff -r 30644208c955 -r a15a7b4ba12a scripts/build/libc/glibc.sh
> --- a/scripts/build/libc/glibc.sh	Thu May 26 22:51:03 2011 +0200
> +++ b/scripts/build/libc/glibc.sh	Fri May 27 22:02:30 2011 -0300
> @@ -54,15 +54,24 @@
>          [ "${addon}" = "nptl" ] && continue || true
>          CT_Extract nochdir "glibc-${addon}-${CT_LIBC_VERSION}"
>  
> +        CT_TestAndAbort "Error in add-on '${addon}': both short and long names in tarball" \ 
> +            -d "${addon}" -a -d "glibc-${addon}-${CT_LIBC_VERSION}"
> +
>          # Some addons have the 'long' name, while others have the
>          # 'short' name, but patches are non-uniformly built with
>          # either the 'long' or 'short' name, whatever the addons name
> -        # so we have to make symlinks from the existing to the missing
> -        # Fortunately for us, [ -d foo ], when foo is a symlink to a
> -        # directory, returns true!
> -        [ -d "${addon}" ] || CT_DoExecLog ALL ln -s "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
> -        [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ] || CT_DoExecLog ALL ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}"
> +        # but we prefer the 'short' name and avoid duplicates.
> +        if [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ]; then
> +            mv "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
> +        fi
> +
> +        ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}"
> +
>          CT_Patch nochdir "glibc" "${addon}-${CT_LIBC_VERSION}"
> +
> +        # Remove the long name since it can confuse configure scripts to run
> +        # the same source twice.
> +        rm "glibc-${addon}-${CT_LIBC_VERSION}"
>      done
>  
>      # The configure files may be older than the configure.in files
> 

Apart from the spurious trailing spaces, and your Sob line missing, this is
all good. Just reply to this message with a line like the following, and I
will apply the patch:
Signed-off-by: John DOE <john.doe@some-where.net>

For the reason why SoB lines are needed and what they mean, please have a
look at Chapter 12 in:
https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingPatches

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]