> On Jul 17, 2019, at 01:48 , Sebastian Huber > <sebastian.hu...@embedded-brains.de> wrote: > > Hello Peter, > > On 16/07/2019 19:58, Peter Dufault wrote: >> I have a build failure with the MVME5500 “beatnik” BSP. Therefore I tried to >> build the “psim” BSP and have the same failure: the FreeBSD PowerPC >> “cpufunc.h” and the RTEMS PowerPC “io.h” headers both define static inline >> "eioeio()" functions. >> - RTEMS, libbsd, RSB and the build tools are up-to-date as of this AM. >> - Building for arm xilinx_zynq_a9_qemu succeeds. >> - I’ll work-around it but I believe I must have something locally screwed >> up, I can't find any recent changes associated with this. > > libbsd doesn't work for all BSPs. For each new BSP you there are probably > some things to fix and adjust. I think the <bsp.h> should not include the low > level io.h header file. The only powerpc BSP that supported by libbsd is the > qoriq. >
First an easy question: what rtems-libbsd branch is best to work with: master or 5-freebsd-12? As for properly fixing the include of libcpu/io.h: This fix is clear: - Any .c file below bsps/powerpc/shared/ that need it should include libcpu/io.h directly. The header is in bsps/powerpc/include/ and both are below bsps/powerpc. This fix is not clear: - There are .c files in bsps/shared that reference e.g. “inport_byte()” (e.g. bsps/shared/dev/rtc/mc146818a_ioreg.c). There are definitions of “inport_byte()” in cpukit/score headers for x86 architectures and in bsp.h headers for PowerPC (arm/gumstix, powerpc/beatnik, powerpc/motorola_powerpc). For PowerPC the definition is based on what’s in "libcpu/io.h”. The PowerPC definition of “inport_byte()" should be moved from bsp.h into bsps/powerpc/shared/libcpu/io.h, but then I don’t know the right way to get that header included in the bsps/shared code, there isn’t something like “bsps/shared/include” where a definition could go (and count on proper configuration of the BSPs for everything to link properly). As an aside, mc146818a_ioreg.c is brittle. It requires that “inport_byte" be a macro and if its definition is moved out of bsp.h the code will not compile properly: #include <rtems.h> #include <bsp.h> #include <libchip/rtc.h> #include <libchip/mc146818a.h> /* * At this point, not all CPUs or BSPs have defined in/out port routines. */ #if defined(__i386__) || defined(__PPC__) #if defined(inport_byte) ... > -- > 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. Peter ----------------- Peter Dufault HD Associates, Inc. Software and System Engineering This email is delivered through the public internet using protocols subject to interception and tampering. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel