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]

AW: AW: Canadian cross build fails


Matthias,

ct-ng cannot apply patches in intermediate build stages (at least I hope this is still the case).
The patch I sent could be applied at the normal "patching toolchain components" stage.

Regards,
Titus


-----UrsprÃngliche Nachricht-----
Von: Matthias WeiÃer [mailto:m.weisser.m@gmail.com] 
Gesendet: Dienstag, 10. Februar 2015 10:26
An: Reinoud Koornstra
Cc: Titus von Boxberg; crossgcc@sourceware.org
Betreff: Re: AW: Canadian cross build fails

Reinoud, Titus

Thanks for your answers. Will go that way. Can you give me a hint on how to configure crosstools-ng to apply the patch only to the final gcc build? To create the patch is not the problem but the automated patch application at the right step is a bit unclear to me.

Regards
Matthias

2015-02-10 0:16 GMT+01:00 Reinoud Koornstra <reinoudkoornstra@gmail.com>:
> In the original build error is see this:
>
>> [ALL  ]     #define caddr_t char *
>
> This define looks to be the other way around and second: shouldn't be 
> there at all, because caddr_t is already defined here: 
> include/sys/types.h:116
>
> So we end up with a double typedef for caddr_t It might be because 
> configure didn't notice caddr_t as already defined?
>
> There shouldn't be a definition here again:
>
> ../.././gcc/auto-host.h:1996
>
> It looks like a configure didn't go well.
> Otherwise delete that line from auto-host.h Reinoud.
>
> On Feb 9, 2015 3:56 PM, "Titus von Boxberg" <titus@elbe-informatik.de>
> wrote:
>>
>> Reinoud, Matthias,
>>
>> the patch is simply:
>> --- gcc-4.9.2.orig/libgcc/crtstuff.c    2014-03-10 19:31:20.000000000
>> +0100
>> +++ gcc-4.9.2/libgcc/crtstuff.c 2014-12-12 21:28:55.715789167 +0100
>> @@ -56,6 +56,7 @@
>>  #undef rlim_t
>>  #undef ssize_t
>>  #undef vfork
>> +#undef caddr_t
>>  #include "tconfig.h"
>>  #include "tsystem.h"
>>  #include "coretypes.h"
>>
>> I did not take the time to really correct the problem, that's why I 
>> used this hack and didn't send the patch to this ML.
>>
>> I hope I remember it correctly:
>> The problem is that a configuration step is missing to correctly 
>> decide if the definition of caddr_t is really necessary.
>> As a preliminary crtstuff.c includes auto-host.h which is not fully 
>> correct (for canadian build).
>>
>> Please have a look at the comments in crtstuff.c and and at 
>> generation of auto-host.h Then it should get clear.
>>
>> Regards,
>> Titus
>>
>> ________________________________________
>> Von: Reinoud Koornstra <reinoudkoornstra@gmail.com>
>> Gesendet: Montag, 9. Februar 2015 22:06
>> An: Titus von Boxberg
>> Cc: Matthias WeiÃer; crossgcc@sourceware.org
>> Betreff: Re: Canadian cross build fails
>>
>> Hmm, how did you patch caddr_t?
>> In racoon for example this definition is used often, and later casted 
>> to the real structure.
>>
>> #ifdef  __USE_BSD
>> # ifndef __daddr_t_defined
>> typedef __daddr_t daddr_t;
>> typedef __caddr_t caddr_t;
>>
>> Later:
>>
>> typedef char *__caddr_t;
>>
>> Nothing wrong with this, this is the def in glibc though.
>>
>> On Mon, Feb 9, 2015 at 6:06 AM, Titus von Boxberg 
>> <titus@elbe-informatik.de> wrote:
>> > Hi,
>> >
>> > I had the same issue (with canadian for powerpc iirc).
>> >
>> > If you look into the source file causing the error you see a 
>> > comment similar to "XXX fixme" or so.
>> >
>> > So the problem is known but a "real solution" is not at hand.
>> > Thus, I have patched the definition of caddr_t away and it works for me.
>> >
>> > Regards,
>> > Titus
>> >
>> >
>> > -----UrsprÃngliche Nachricht-----
>> > Von: crossgcc-owner@sourceware.org
>> > [mailto:crossgcc-owner@sourceware.org] Im Auftrag von Matthias 
>> > WeiÃer
>> > Gesendet: Montag, 9. Februar 2015 13:25
>> > An: crossgcc@sourceware.org
>> > Betreff: Canadian cross build fails
>> >
>> >  [INFO ]  Installing final compiler for build: done in 223.82s (at
>> > 22:21) [INFO ]
>> > =================================================================
>> > [INFO ]  Installing final compiler
>> > [EXTRA]    Configuring gcc
>> > [EXTRA]    Building libiberty
>> > [EXTRA]    Building gcc
>> > [ALL  ]    arm-gs-linux-gnueabihf-cc   -mlittle-endian -march=armv7-a
>> > -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mhard-float -O2 
>> > -mlittle-endian -march=armv7-a  -mcpu=cortex-a9 -mtune=cortex-a9
>> > -mfpu=vfpv3 -mhard-float  -DIN_GCC  -DCROSS_DIRECTORY_STRUCTU RE  
>> > -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual 
>> > -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include  -I. -I.
>> > -I../.././gcc -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/.
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/../gcc
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/../include   -g0
>> > -finhibit-size-directive -fno-inline -fno-exceptions 
>> > -fno-zero-initialized-in-bss -fno-toplevel-reorder 
>> > -fno-tree-vectorize -fno-stack-protector  -I. -I. -I../.././gcc 
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/.
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/../gcc
>> > -I/$LONGPATH/.build/src/gcc-4.9.2/libgcc/../include  -o crtendS.o 
>> > -MT crtendS.o -MD -MP -MF crtendS.dep  -fPIC -c 
>> > /$LONGPATH/.build/src/gcc-4.9.2/libgcc/crtstuff.c -DCRT_END -DCRTSTUFFS_O
>> > [ALL  ]    In file included from
>> > /$LONGPATH/.build/src/gcc-4.9.2/libgcc/crtstuff.c:54:0:
>> > [ERROR]    ../.././gcc/auto-host.h:1996:17: error: two or more data
>> > types in declaration specifiers
>> > [ALL  ]     #define caddr_t char *
>> > [ALL  ]                     ^
>> > [ALL  ]    In file included from
>> > /$LONGPATH/.build/src/gcc-4.9.2/libgcc/../gcc/tsystem.h:90:0,
>> > [ALL  ]                     from
>> > /$LONGPATH/.build/src/gcc-4.9.2/libgcc/crtstuff.c:60:
>> > [ERROR]
>> > /$LONGPATH/output/arm-gs-linux-gnueabihf/sysroot/usr/include/sys/types.h:116:26:
>> > error: expected identifier or '(' before ';' token
>> > [ALL  ]     typedef __caddr_t caddr_t;
>> > [ALL  ]                              ^
>> >
>> > If I check google for that error I come across the following pages:
>> > https://sourceware.org/ml/newlib/2014/msg00034.html
>> >
>> > http://www.gurucoding.com/en/pc_cross_compiler/building_binutils_gc
>> > c_mingw_vm.php
>> >
>> >
>> > Both suggest patching gcc autoconf or the C library itself. I can't 
>> > belive that this is the correct solution to this issue. Do I miss something?
>> > What is a bit unclear to me is that I don't have to (or I missed 
>> > it) specify the path to the toolchain build in step 1 to the 
>> > canadian build in step 3. I do pass the toolchain from step 2 into 
>> > the crosstools config as host. This is my mini-defconfig of the 
>> > step 3
>> > toolchain:
>> >
>> >
>>
>> --
>> 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]