This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See crosstool-NG 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] |
David, All, On Wednesday 19 September 2012 05:42:48 David Holsgrove wrote: > # HG changeset patch > # User David Holsgrove <david.holsgrove@xilinx.com> > # Date 1348016639 -36000 > # Node ID 95abeed3a485c4d5b02e4860fc554d6841e1cc41 > # Parent 2858a24a584642e263a920b4214c815c172ed547 > scripts/build/gcc.sh: When compiling a Canadian Cross avoid using -print-multi-lib > > With a candian cross, attempting to ${CT_TARGET}-gcc -print-multi-lib will fail That's right. But the fix you suggest is wrong, see below. > As this is only for pretty log output, can safely sidestep > > diff -r 2858a24a5846 -r 95abeed3a485 scripts/build/cc/gcc.sh > --- a/scripts/build/cc/gcc.sh Sun Aug 12 07:45:42 2012 -0400 > +++ b/scripts/build/cc/gcc.sh Wed Sep 19 11:03:59 2012 +1000 > @@ -460,7 +460,8 @@ > [ -z "${file}" ] || ext=".${file##*.}" > CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${prefix}/bin/${CT_TARGET}-cc${ext}" > > - if [ "${CT_MULTILIB}" = "y" ]; then > + # Skip for Canadian Build, can't run on the system and only gives pretty log output. > + if [ "${CT_MULTILIB}" = "y" -a "${CT_CANADIAN}" != "y" ]; then This is the part that deals with the core pass-1 and pass-2 compilers, so they are expected to run on the build machine, so we should be able to run them (hell, they're gonna be used later to build the C library!) Unfortunately, that part also deals with the final compiler for bare metal, which we indeed can not run when it's canadian. > multilibs=( $( "${prefix}/bin/${CT_TARGET}-gcc" -print-multi-lib \ Simply doing the following: multilibs=( $( "${CT_TARGET}-gcc" -print-multi-lib \ is not enough here, as that would call: 1- in cross-mode, and not bare-metal: only the core compiler 2- in cross-mode, and bare-metal: the final compiler 3- in canadian-mode, and not bare-metal: always the core compiler 4- in canadian-mode, and bare-metal: always the core compiler This is not possible, because: 1- is OK 2- is OK 3- is OK 4- is wrong: we want to know the final compiler multilib support, not the core compiler multilib support > |tail -n +2 ) ) > if [ ${#multilibs[@]} -ne 0 ]; then > @@ -815,7 +816,8 @@ > [ -z "${file}" ] || ext=".${file##*.}" > CT_DoExecLog ALL ln -sfv "${CT_TARGET}-gcc${ext}" "${CT_PREFIX_DIR}/bin/${CT_TARGET}-cc${ext}" > > - if [ "${CT_MULTILIB}" = "y" ]; then > + # Skip for Canadian Build, can't run on the system and only gives pretty log output. > + if [ "${CT_MULTILIB}" = "y" -a "${CT_CANADIAN}" != "y" ]; then Here, that's right. This is the part that deals with the final gcc for non bare-metal. So we can only run it if its not canadian. > multilibs=( $( "${CT_PREFIX_DIR}/bin/${CT_TARGET}-gcc" -print-multi-lib \ ^^^^^^^^^^^^^^^^ There's a latent bug here --/ That should be ${prefix} I'll fix here. So, do we still need to print the multilib status, after all? Could we just remove that? 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] |