<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>Dear Vijay,<br />thank you very much for your effort to bring some order here ;-)</p>
<div>I am currently trying to get EPICS to work on RTEMS6 as well.</div>
<p>I already failed with the legacy stack because configuration variables like<br />RTEMS_HAS_NETWORK are not set with the waf-builder. </p>
<div>That's why I quite happily jumped on your legacy-net-extra </div>
<div>(For the beatnik CPU on which I can test directly on the hardware).<br /><br /></div>
<div>Unfortunately, it doesn't quite work yet:</div>
<div><span style="font-size: 10pt;"><br />git clone https://github.com/RTEMS/rtems-source-builder.git rsb</span></div>
<div>
<p>cd rsb<br />cd rtems<br />../source-builder/sb-set-builder --prefix=/home/junkes/MVME6100_testing/rtems/6 6/rtems-powerpc<br />cd ../..</p>
<p>#RTEMS development<br />export RTEMS_VERSION=6<br />export RTEMS_ARCH=powerpc-rtems${RTEMS_VERSION}<br />export RTEMS_ROOT=/home/junkes/MVME6100_testing/rtems/${RTEMS_VERSION}<br />export PATH=${RTEMS_ROOT}/bin:${PATH}</p>
<p># building kernel<br />#git clone git://git.rtems.org/rtems.git kernel<br />git clone git://git.rtems.org/vijay/rtems.git kernel<br />cd kernel</p>
<p># build and install bsp<br /># 1. Test with waf<br />#-e "s|RTEMS_NETWORKING = False|RTEMS_NETWORKING = True|" \<br />./waf bsp_defaults --rtems-bsps=powerpc/beatnik > config.ini<br />sed -i \<br />-e "s|RTEMS_POSIX_API = False|RTEMS_POSIX_API = True|" \<br />-e "s|BUILD_TESTS = False|BUILD_TESTS = True|" \<br />config.ini<br />./waf configure --prefix=/home/junkes/MVME6100_testing/rtems/6<br />./waf<br />./waf install</p>
<p>cd ..</p>
<p># building extra legacy net<br />git clone git://git.rtems.org/vijay/rtems-net-legacy.git legacyNet<br />cd legacyNet<br />git submodule init<br />git submodule update</p>
<p>./waf configure --prefix=/home/junkes/MVME6100_testing/rtems/6</p>
<p>Setting top to : /home/junkes/MVME6100_testing/legacyNet <br />Setting out to : /home/junkes/MVME6100_testing/legacyNet/build <br />RTEMS Version : 6 <br />Architectures : powerpc-rtems6 <br />Board Support Package (BSP) : powerpc-rtems6-beatnik <br />Show commands : no <br />Long commands : no <br />Checking for program 'powerpc-rtems6-gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc <br />Checking for program 'powerpc-rtems6-g++' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-g++ <br />Checking for program 'powerpc-rtems6-gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc <br />Checking for program 'powerpc-rtems6-ld' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ld <br />Checking for program 'powerpc-rtems6-ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar <br />Checking for program 'powerpc-rtems6-nm' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-nm <br />Checking for program 'powerpc-rtems6-objdump' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-objdump <br />Checking for program 'powerpc-rtems6-objcopy' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-objcopy <br />Checking for program 'powerpc-rtems6-readelf' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-readelf <br />Checking for program 'powerpc-rtems6-strip' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-strip <br />Checking for program 'powerpc-rtems6-ranlib' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ranlib <br />Checking for program 'rtems-ld' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-ld <br />Checking for program 'rtems-tld' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-tld <br />Checking for program 'rtems-syms' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-syms <br />Checking for program 'rtems-bin2c' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-bin2c <br />Checking for program 'tar' : /usr/bin/tar <br />Checking for program 'gcc, cc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc <br />Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar <br />Checking for program 'g++, c++' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-g++ <br />Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar <br />Checking for program 'gas, gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc <br />Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar <br />Checking for c flags '-MMD' : yes <br />Checking for cxx flags '-MMD' : yes <br />Compiler version (powerpc-rtems6-gcc) : 10.2.1 20210205 (RTEMS 6, RSB 61dcadee0825867ebe51f9f367430ef75b8fe9c0, Newlib d4a756f) <br />Checking for a valid RTEMS BSP installation : yes <br />Checking for RTEMS_DEBUG : no <br />Checking for RTEMS_MULTIPROCESSING : no <br />Checking for RTEMS_NEWLIB : yes <br />Checking for RTEMS_POSIX_API : yes <br />Checking for RTEMS_SMP : no <br />Checking for RTEMS_NETWORKING : no <br />'configure' finished successfully (0.840s)</p>
<p>./waf build --rtems-archs=powerpc --rtems-bsps=beatnik</p>
<p>Waf: Entering directory `/home/junkes/MVME6100_testing/legacyNet/build/powerpc-rtems6-beatnik'<br />[ 1/229] Compiling bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c<br />[ 2/229] Compiling bsps/powerpc/beatnik/net/porting/if_xxx.modini.c<br />[ 3/229] Compiling librpc/src/rpc/pmap_getport.c<br />[ 4/229] Compiling netinet/ip_icmp.c<br />[ 5/229] Compiling libc/getservbyname.c<br />[ 6/229] Compiling libc/base64.c<br />[ 7/229] Compiling libc/ns_ttl.c<br />[ 8/229] Compiling libc/inet_makeaddr.c<br />[ 9/229] Compiling librpc/src/rpc/auth_none.c<br />[ 10/229] Compiling librpc/src/rpc/get_myaddress.c<br />[ 11/229] Compiling netinet/tcp_debug.c<br />[ 12/229] Compiling librpc/src/rpc/netnamer.c<br />[ 13/229] Compiling librpc/src/rpc/svc_auth.c<br />[ 14/229] Compiling librpc/src/rpc/rtems_portmapper.c<br />[ 15/229] Compiling netinet/tcp_subr.c<br />[ 16/229] Compiling librpc/src/rpc/svc_simple.c<br />../../libc/getservbyname.c: In function 'getservbyname_r':<br />../../libc/getservbyname.c:54:4: warning: #warning "implement a proper getservbyport_r" [-Wcpp]<br />54 | #warning "implement a proper getservbyport_r"<br />| ^~~~~~~</p>
<p>[ 17/229] Compiling rtems/rtems_bootp.c<br />[ 18/229] Compiling net/if.c<br />../../bsps/powerpc/beatnik/net/porting/if_xxx.modini.c:2:10: fatal error: porting/rtemscompat.h: No such file or directory<br />2 | #include <porting/rtemscompat.h><br />| ^~~~~~~~~~~~~~~~~~~~~~~<br />compilation terminated.</p>
<p>In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:164:2: error: #error rtemscompat_defs.h must define either NET_CHIP_LE or NET_CHIP_BE<br />164 | #error rtemscompat_defs.h must define either NET_CHIP_LE or NET_CHIP_BE<br />| ^~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_read_2':<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:267:9: warning: implicit declaration of function '_inp_word' [-Wimplicit-function-declaration]<br />267 | return _inp_word((volatile unsigned short*)((handle)+(reg)));<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_read_4':<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:272:9: warning: implicit declaration of function '_inp_long' [-Wimplicit-function-declaration]<br />272 | return _inp_long((volatile unsigned *)((handle)+(reg)));<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_write_multi_2':<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:286:31: warning: implicit declaration of function '_out_word' [-Wimplicit-function-declaration]<br />286 | int i; for (i=0; i<cnt; i++) _out_word( (handle) + (reg), (addr)[i]);<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_write_multi_4':<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:291:31: warning: implicit declaration of function '_out_long' [-Wimplicit-function-declaration]<br />291 | int i; for (i=0; i<cnt; i++) _out_long( (handle) + (reg), (addr)[i]);<br />| ^~~~~~~~~<br />In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:40:<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h: At top level:<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:16:19: error: field 'd_softc' has incomplete type<br />16 | struct NET_SOFTC d_softc; /* MUST BE FIRST FIELD */<br />| ^~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:28:38: error: 'NETDRIVER_SLOTS' undeclared here (not in a function)<br />28 | #define NETDEV_DECL netdev_t THEDEVS[NETDRIVER_SLOTS]<br />| ^~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:30:8: note: in expansion of macro 'NETDEV_DECL'<br />30 | extern NETDEV_DECL;<br />| ^~~~~~~~~~~<br />In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h: In function 'net_dev_get':<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:50:28: error: expected ')' before 'NETDRIVER'<br />50 | device_printf(dev, "Bad "NETDRIVER" unit number.\n");<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'rtems_NETDRIVER_PREFIX_attach':<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:21: error: 'NETDRIVER' undeclared (first use in this function)<br />131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../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<br />131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:30: error: expected ')' before string constant<br />131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");<br />| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:140:11: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />140 | ifp = &sc->arpcom.ac_if;<br />| ^~<br />In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:151:31: error: expected ')' before string constant<br />151 | device_printf(dev,NETDRIVER" Driver already attached.\n");<br />| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:156:13: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />156 | memcpy(sc->arpcom.ac_enaddr, config->hardware_address, ETHER_ADDR_LEN);<br />| ^~<br />In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:163:31: error: expected ')' before string constant<br />163 | device_printf(dev,NETDRIVER"_attach() failed\n");<br />| ^~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:168:31: error: expected ')' before string constant<br />168 | device_printf(dev,NETDRIVER" Driver not attached.\n");<br />| ^~~~~~~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:173:32: error: expected ')' before string constant<br />173 | device_printf(dev,NETDRIVER"_detach() failed\n");<br />| ^~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:177:31: error: expected ')' before string constant<br />177 | device_printf(dev,NETDRIVER"_detach() not implemented\n");<br />| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf'<br />258 | #define device_printf(device,format,args...) printk(format,## args)<br />| ^~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:183:10: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />183 | if ( !sc->tid )<br />| ^~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:5: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);<br />| ^~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:43: error: expected ')' before string constant<br />184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);<br />| ^~~<br />| )<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:13: error: too few arguments to function 'rtems_bsdnet_newproc'<br />184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);<br />| ^~~~~~~~~~~~~~~~~~~~<br />In file included from ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:42,<br />from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:<br />../../rtems/rtems_bsdnet_internal.h:169:10: note: declared here<br />169 | rtems_id rtems_bsdnet_newproc (<br />| ^~~~~~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:194:23: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />194 | irq_data.name = sc->irq_no;<br />| ^~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:203:28: error: expected ')' before string constant<br />203 | fprintf(stderr,NETDRIVER": unable to install ISR\n");<br />| ^~~~~~~~~~~~~~~~~~~~~~~~~~~<br />| )<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:207:10: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />207 | if ( sc->irq_no ) {<br />| ^~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:215:23: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />215 | irq_data.name = sc->irq_no;<br />| ^~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:222:28: error: expected ')' before string constant<br />222 | fprintf(stderr,NETDRIVER": unable to uninstall ISR\n");<br />| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />| )<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'the_net_isr':<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:242:2: warning: implicit declaration of function 'NET_DISABLE_IRQS' [-Wimplicit-function-declaration]<br />242 | NET_DISABLE_IRQS(sc);<br />| ^~~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:244:29: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'<br />244 | rtems_bsdnet_event_send( sc->tid, EX_EVENT );<br />| ^~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'net_daemon':<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:262:3: warning: implicit declaration of function 'NET_ENABLE_IRQS' [-Wimplicit-function-declaration]<br />262 | NET_ENABLE_IRQS(sc);<br />| ^~~~~~~~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: At top level:<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:286:2: error: 'NETDRIVER' undeclared here (not in a function)<br />286 | NETDRIVER"1",<br />| ^~~~~~~~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:286:11: error: expected '}' before string constant<br />286 | NETDRIVER"1",<br />| ^~~<br />../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:285:74: note: to match this '{'<br />285 | struct rtems_bsdnet_ifconfig NET_EMBEMB(NETDRIVER_PREFIX,_dbg,_config) = {<br />| ^</p>
<p>Waf: Leaving directory `/home/junkes/MVME6100_testing/legacyNet/build/powerpc-rtems6-beatnik'<br />Build failed<br />-> task in 'bsp_objs' failed with exit status 1 (run with -v to display more information)<br />-> task in 'bsp_objs' failed with exit status 1 (run with -v to display more information)</p>
</div>
<div>Viele Grüße und Danke,</div>
<div>Heinz</div>
<div>
<div id="v1AppleMailSignature"> </div>
<br />
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">On 1. Mar 2021, at 22:48, Vijay Kumar Banerjee <vijay@rtems.org> wrote:<br /><br />Hello all,<br /><br />In RTEMS 6, there will be no cpukit/libnetworking in the RTEMS repository and it will be moved to its own separate repository. There are ongoing efforts in this direction and it is very close to completion. What's remaining, is to collect feedback from the users of the libnetworking stack.<br /><br />I request you to test the new standalone legacy networking repository with your regular targets and let me know if I have broken something in RTEMS or in the new repository. The legacy repo, in its current state, has been tested with pc-qemu and it can successfully run the legacy networking tests.<br /><br />The following are the links to the repositories with the latest version of changes:<br />RTEMS: https://git.rtems.org/vijay/rtems.git/log/?h=devel-no-libnet<br />Legacy Network: https://git.rtems.org/vijay/rtems-net-legacy.git/log/?h=main<br /><br />The following BSP family in RTEMS has been used with the old legacy networking stack:<br />Zynq, PC, Motorola Shared, Beatnik, mvme3100, mvme5500, gen68360, uc5282, mvme 162/167<br /><br />If anyone is maintaining/working with one (or more) of these BSPs, please let me know if you're able to test the separate legacy-net repository and if you have any feedback. If you're planning to test it, please add your comments here so that we know someone is going to do it and wait for your feedback. The changes will not be pushed right away and we'll wait for some feedback.<br /><br />What's next?<br /><br />The legacy networking repository will stay at git.rtems.org for any projects that are still using it. It is recommended that the new projects use the libbsd networking stack which is more full-featured.<br /><br />Thank you for your patient reading. Any suggestion is welcome and I'm more than happy to work with you to get it more thoroughly tested before getting it merged.<br /><br />Best regards,<br />Vijay<br />_______________________________________________<br />devel mailing list<br />devel@rtems.org<br />http://lists.rtems.org/mailman/listinfo/devel</blockquote>
</div>
</body></html>