I am currently trying to get EPICS to work on RTEMS6 as well.
(For the beatnik CPU on which I can test directly on the hardware).
cd rsb
cd rtems
../source-builder/sb-set-builder --prefix=/home/junkes/MVME6100_testing/rtems/6 6/rtems-powerpc
cd ../..
#RTEMS development
export RTEMS_VERSION=6
export RTEMS_ARCH=powerpc-rtems${RTEMS_VERSION}
export RTEMS_ROOT=/home/junkes/MVME6100_testing/rtems/${RTEMS_VERSION}
export PATH=${RTEMS_ROOT}/bin:${PATH}
# building kernel
#git clone git://git.rtems.org/rtems.git kernel
git clone git://git.rtems.org/vijay/rtems.git kernel
cd kernel
# build and install bsp
# 1. Test with waf
#-e "s|RTEMS_NETWORKING = False|RTEMS_NETWORKING = True|" \
./waf bsp_defaults --rtems-bsps=powerpc/beatnik > config.ini
sed -i \
-e "s|RTEMS_POSIX_API = False|RTEMS_POSIX_API = True|" \
-e "s|BUILD_TESTS = False|BUILD_TESTS = True|" \
config.ini
./waf configure --prefix=/home/junkes/MVME6100_testing/rtems/6
./waf
./waf install
cd ..
# building extra legacy net
git clone git://git.rtems.org/vijay/rtems-net-legacy.git legacyNet
cd legacyNet
git submodule init
git submodule update
./waf configure --prefix=/home/junkes/MVME6100_testing/rtems/6
Setting top to : /home/junkes/MVME6100_testing/legacyNet
Setting out to : /home/junkes/MVME6100_testing/legacyNet/build
RTEMS Version : 6
Architectures : powerpc-rtems6
Board Support Package (BSP) : powerpc-rtems6-beatnik
Show commands : no
Long commands : no
Checking for program 'powerpc-rtems6-gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc
Checking for program 'powerpc-rtems6-g++' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-g++
Checking for program 'powerpc-rtems6-gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc
Checking for program 'powerpc-rtems6-ld' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ld
Checking for program 'powerpc-rtems6-ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar
Checking for program 'powerpc-rtems6-nm' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-nm
Checking for program 'powerpc-rtems6-objdump' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-objdump
Checking for program 'powerpc-rtems6-objcopy' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-objcopy
Checking for program 'powerpc-rtems6-readelf' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-readelf
Checking for program 'powerpc-rtems6-strip' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-strip
Checking for program 'powerpc-rtems6-ranlib' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ranlib
Checking for program 'rtems-ld' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-ld
Checking for program 'rtems-tld' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-tld
Checking for program 'rtems-syms' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-syms
Checking for program 'rtems-bin2c' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-bin2c
Checking for program 'tar' : /usr/bin/tar
Checking for program 'gcc, cc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc
Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar
Checking for program 'g++, c++' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-g++
Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar
Checking for program 'gas, gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc
Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar
Checking for c flags '-MMD' : yes
Checking for cxx flags '-MMD' : yes
Compiler version (powerpc-rtems6-gcc) : 10.2.1 20210205 (RTEMS 6, RSB 61dcadee0825867ebe51f9f367430ef75b8fe9c0, Newlib d4a756f)
Checking for a valid RTEMS BSP installation : yes
Checking for RTEMS_DEBUG : no
Checking for RTEMS_MULTIPROCESSING : no
Checking for RTEMS_NEWLIB : yes
Checking for RTEMS_POSIX_API : yes
Checking for RTEMS_SMP : no
Checking for RTEMS_NETWORKING : no
'configure' finished successfully (0.840s)
./waf build --rtems-archs=powerpc --rtems-bsps=beatnik
Waf: Entering directory `/home/junkes/MVME6100_testing/legacyNet/build/powerpc-rtems6-beatnik'
[ 1/229] Compiling bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c
[ 2/229] Compiling bsps/powerpc/beatnik/net/porting/if_xxx.modini.c
[ 3/229] Compiling librpc/src/rpc/pmap_getport.c
[ 4/229] Compiling netinet/ip_icmp.c
[ 5/229] Compiling libc/getservbyname.c
[ 6/229] Compiling libc/base64.c
[ 7/229] Compiling libc/ns_ttl.c
[ 8/229] Compiling libc/inet_makeaddr.c
[ 9/229] Compiling librpc/src/rpc/auth_none.c
[ 10/229] Compiling librpc/src/rpc/get_myaddress.c
[ 11/229] Compiling netinet/tcp_debug.c
[ 12/229] Compiling librpc/src/rpc/netnamer.c
[ 13/229] Compiling librpc/src/rpc/svc_auth.c
[ 14/229] Compiling librpc/src/rpc/rtems_portmapper.c
[ 15/229] Compiling netinet/tcp_subr.c
[ 16/229] Compiling librpc/src/rpc/svc_simple.c
../../libc/getservbyname.c: In function 'getservbyname_r':
../../libc/getservbyname.c:54:4: warning: #warning "implement a proper getservbyport_r" [-Wcpp]
54 | #warning "implement a proper getservbyport_r"
| ^~~~~~~
[ 17/229] Compiling rtems/rtems_bootp.c
[ 18/229] Compiling net/if.c
../../bsps/powerpc/beatnik/net/porting/if_xxx.modini.c:2:10: fatal error: porting/rtemscompat.h: No such file or directory
2 | #include <porting/rtemscompat.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:164:2: error: #error rtemscompat_defs.h must define either NET_CHIP_LE or NET_CHIP_BE
164 | #error rtemscompat_defs.h must define either NET_CHIP_LE or NET_CHIP_BE
| ^~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_read_2':
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:267:9: warning: implicit declaration of function '_inp_word' [-Wimplicit-function-declaration]
267 | return _inp_word((volatile unsigned short*)((handle)+(reg)));
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_read_4':
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:272:9: warning: implicit declaration of function '_inp_long' [-Wimplicit-function-declaration]
272 | return _inp_long((volatile unsigned *)((handle)+(reg)));
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_write_multi_2':
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:286:31: warning: implicit declaration of function '_out_word' [-Wimplicit-function-declaration]
286 | int i; for (i=0; i<cnt; i++) _out_word( (handle) + (reg), (addr)[i]);
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_write_multi_4':
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:291:31: warning: implicit declaration of function '_out_long' [-Wimplicit-function-declaration]
291 | int i; for (i=0; i<cnt; i++) _out_long( (handle) + (reg), (addr)[i]);
| ^~~~~~~~~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:40:
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h: At top level:
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:16:19: error: field 'd_softc' has incomplete type
16 | struct NET_SOFTC d_softc; /* MUST BE FIRST FIELD */
| ^~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:28:38: error: 'NETDRIVER_SLOTS' undeclared here (not in a function)
28 | #define NETDEV_DECL netdev_t THEDEVS[NETDRIVER_SLOTS]
| ^~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:30:8: note: in expansion of macro 'NETDEV_DECL'
30 | extern NETDEV_DECL;
| ^~~~~~~~~~~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h: In function 'net_dev_get':
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:50:28: error: expected ')' before 'NETDRIVER'
50 | device_printf(dev, "Bad "NETDRIVER" unit number.\n");
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'rtems_NETDRIVER_PREFIX_attach':
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:21: error: 'NETDRIVER' undeclared (first use in this function)
131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:21: note: each undeclared identifier is reported only once for each function it appears in
131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:30: error: expected ')' before string constant
131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:140:11: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
140 | ifp = &sc->arpcom.ac_if;
| ^~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:151:31: error: expected ')' before string constant
151 | device_printf(dev,NETDRIVER" Driver already attached.\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:156:13: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
156 | memcpy(sc->arpcom.ac_enaddr, config->hardware_address, ETHER_ADDR_LEN);
| ^~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:163:31: error: expected ')' before string constant
163 | device_printf(dev,NETDRIVER"_attach() failed\n");
| ^~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:168:31: error: expected ')' before string constant
168 | device_printf(dev,NETDRIVER" Driver not attached.\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:173:32: error: expected ')' before string constant
173 | device_printf(dev,NETDRIVER"_detach() failed\n");
| ^~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:177:31: error: expected ')' before string constant
177 | device_printf(dev,NETDRIVER"_detach() not implemented\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'
258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:183:10: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
183 | if ( !sc->tid )
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:5: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:43: error: expected ')' before string constant
184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);
| ^~~
| )
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:13: error: too few arguments to function 'rtems_bsdnet_newproc'
184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);
| ^~~~~~~~~~~~~~~~~~~~
In file included from ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:42,
from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:
../../rtems/rtems_bsdnet_internal.h:169:10: note: declared here
169 | rtems_id rtems_bsdnet_newproc (
| ^~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:194:23: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
194 | irq_data.name = sc->irq_no;
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:203:28: error: expected ')' before string constant
203 | fprintf(stderr,NETDRIVER": unable to install ISR\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| )
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:207:10: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
207 | if ( sc->irq_no ) {
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:215:23: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
215 | irq_data.name = sc->irq_no;
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:222:28: error: expected ')' before string constant
222 | fprintf(stderr,NETDRIVER": unable to uninstall ISR\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| )
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'the_net_isr':
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:242:2: warning: implicit declaration of function 'NET_DISABLE_IRQS' [-Wimplicit-function-declaration]
242 | NET_DISABLE_IRQS(sc);
| ^~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:244:29: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
244 | rtems_bsdnet_event_send( sc->tid, EX_EVENT );
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'net_daemon':
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:262:3: warning: implicit declaration of function 'NET_ENABLE_IRQS' [-Wimplicit-function-declaration]
262 | NET_ENABLE_IRQS(sc);
| ^~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: At top level:
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:286:2: error: 'NETDRIVER' undeclared here (not in a function)
286 | NETDRIVER"1",
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:286:11: error: expected '}' before string constant
286 | NETDRIVER"1",
| ^~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:285:74: note: to match this '{'
285 | struct rtems_bsdnet_ifconfig NET_EMBEMB(NETDRIVER_PREFIX,_dbg,_config) = {
| ^
Waf: Leaving directory `/home/junkes/MVME6100_testing/legacyNet/build/powerpc-rtems6-beatnik'
Build failed
-> task in 'bsp_objs' failed with exit status 1 (run with -v to display more information)
-> task in 'bsp_objs' failed with exit status 1 (run with -v to display more information)