Building rtems-libbsd

Joel Sherrill joel.sherrill at OARcorp.com
Tue Jan 28 16:38:30 UTC 2014


On 01/28/2014 09:53 AM, Sebastian Huber wrote:
> Hello Joel,
>
> On 2014-01-28 16:47, Joel Sherrill wrote:
>> Hi
>>
>> It looks like the build instructions may be slightly out of
>> date and I am getting a build error. Help appreciated.
> I will probably commit a significant update in the next couple of days.
>
>> Is it assumed that the BSP is installed along side the tools
>> now and not in a separate directory?
>>
>> sparc-rtems4.11-gcc --pipe
>> -B/home/joel/rtems-4.11-work/bsp-install/sparc-rtems4.11/sis/lib/ -specs
>> bsp_specs -qrtems   -Wall  -O2 -g -ffunction-sections -fdata-sections
>> -ffreestanding -fno-common -Irtemsbsd/include -Irtemsbsd/sparc/include
>> -Ifreebsd/sys -Ifreebsd/sys/sparc/include -Ifreebsd/sys/contrib/altq
>> -Ifreebsd/sys/contrib/pf -Icopied/rtemsbsd/sparc/include -Ifreebsd/include
>> -Ifreebsd/lib/libc/include -Ifreebsd/lib/libc/isc/include
>> -Ifreebsd/lib/libc/resolv -Ifreebsd/lib/libutil -Ifreebsd/lib/libkvm
>> -Ifreebsd/lib/libmemstat -Ifreebsd/lib/libipsec -Itestsuite/include -Wall
>> -Wno-format -std=gnu99 -MT rtemsbsd/rtems/rtems-bsd-syscall-api.o -MD -MP -MF
>> rtemsbsd/rtems/rtems-bsd-syscall-api.d   -mcpu=cypress       -c -o
>> rtemsbsd/rtems/rtems-bsd-syscall-api.o rtemsbsd/rtems/rtems-bsd-syscall-api.c
>> In file included from freebsd/sys/sys/_timeval.h:53:0,
>>                    from freebsd/sys/sys/select.h:39,
>>                    from rtemsbsd/include/machine/rtems-bsd-syscall-api.h:51,
>>                    from rtemsbsd/rtems/rtems-bsd-syscall-api.c:32:
>> rtemsbsd/include/rtems/bsd/sys/time.h:414:5: error: conflicting types for
>> 'settimeofday'
>>    int settimeofday(const struct timeval *, const struct timezone *);
>>        ^
>> In file included from
>> /home/joel/rtems-4.11-work/tools/sparc-rtems4.11/include/sys/types.h:20:0,
>>                    from rtemsbsd/include/machine/rtems-bsd-syscall-api.h:48,
>>                    from rtemsbsd/rtems/rtems-bsd-syscall-api.c:32:
>> /home/joel/rtems-4.11-work/tools/sparc-rtems4.11/include/sys/time.h:79:5: note:
>> previous declaration of 'settimeofday' was here
>>    int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
>>        ^
>>
> This is a strange error.  Can you look at the pre-processed file to figure out
> the conflicting types?
>
The issue is subtle to spot. The BSD code apparently cpp's timezone
into _timezone.

$ grep settimeofday /tmp/*.i
int settimeofday (const struct timeval *, const struct timezone *);
int settimeofday(const struct timeval *, const struct _timezone *);

You are in the middle of this code right now so I hope you have a better
eye for spotting the root cause.

-- 
Joel Sherrill, Ph.D.             Director of Research& Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35806
Support Available               (256) 722-9985




More information about the devel mailing list