On 27/10/2020 15:41, Joel Sherrill wrote:


On Tue, Oct 27, 2020 at 9:23 AM Heinz Junkes <jun...@fhi-berlin.mpg.de <mailto:jun...@fhi-berlin.mpg.de>> wrote:

    I am currently trying git rtems6.

    ../source-builder/sb-set-builder --prefix=$HOME/.rtems --log
    powerpc_beatnik.log --no-clean --target=powerpc-rtems6
    --with-rtems-bsp=beatnik 6/rtems-powerpc 6/rtems-kernel

    works …

    Unfortunately It fails here:

    ../source-builder/sb-set-builder --prefix=$HOME/.rtems --log
    libbsd.log --no-clean --target=powerpc-rtems6
    --with-rtems-bsp=beatnik --host=powerpc-rtems6 6/rtems-libbsd

    ...
    [1562/1948] Compiling freebsd/sbin/nvmecontrol/ns.c
    In file included from
    /home/ad/.rtems/lib/gcc/powerpc-rtems6/10.2.1/include/c++/cstdlib:75,
                     from
    /home/ad/.rtems/lib/gcc/powerpc-rtems6/10.2.1/include/c++/stdlib.h:36,
                     from ../../freebsd/sys/sys/libkern.h:216,
                     from ../../freebsd/sys/sys/systm.h:543,
                     from ../../freebsd/sys/sys/mbuf.h:42,
                     from ../../rtemsbsd/rtems/rtems-bsd-cxx.cc:48:
    /home/ad/.rtems/powerpc-rtems6/include/stdlib.h:309:6: error:
    conflicting declaration of C function 'void qsort_r(void*, size_t,
    size_t, int (*)(const void*, const void*, void*
    ), void*)'
      309 | void qsort_r (void *__base, size_t __nmemb, size_t __size,
    int (*_compar)(const void *, const void *, void *), void *__thunk);
          |      ^~~~~~~
    In file included from ../../freebsd/sys/sys/systm.h:543,
                     from ../../freebsd/sys/sys/mbuf.h:42,
                     from ../../rtemsbsd/rtems/rtems-bsd-cxx.cc:48:
    ../../freebsd/sys/sys/libkern.h:211:7: note: previous declaration
    'void qsort_r(void*, size_t, size_t, void*, int (*)(void*, const
    void*, const void*))'
      211 | void  qsort_r(void *base, size_t nmemb, size_t size, void
    *thunk,
          |       ^~~~~~~

    Waf: Leaving directory
    
`/home/ad/RTEMS_DEV/rtems-source-builder/rtems/build/rtems-libbsd-d964a6703c705cc92fd053bcefc08bb3b6baa0e2-powerpc-rtems6-1/rtems-libbsd-d964a6703c705cc9
    2fd053bcefc08bb3b6baa0e2/build/powerpc-rtems6-beatnik-default'
    Build failed
     -> task in 'bsd' failed with exit status 1 (run with -v to
    display more information)
    shell cmd failed: /bin/sh -ex
    
/home/ad/RTEMS_DEV/rtems-source-builder/rtems/build/rtems-libbsd-d964a6703c705cc92fd053bcefc08bb3b6baa0e2-powerpc-rtems6-1/do-build
    error: building
    rtems-libbsd-d964a6703c705cc92fd053bcefc08bb3b6baa0e2-powerpc-rtems6-1


I'm not sure why this would not have shown up before but the FreeBSD kernel reuses some standard library method names with different signatures. The file rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h renames a lot of items to put them in a BSD namespace. qsort_r isn't in this list but perhaps should be.

I think its is this bug:

https://devel.rtems.org/ticket/4078

I added a workaround to the latest master and 6-freebsd-12 branches.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to