Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository

junkes junkes at fhi-berlin.mpg.de
Wed Mar 3 09:39:00 UTC 2021


Dear Vijay,
thank you very much for your effort to bring some order here ;-)

I am currently trying to get EPICS to work on RTEMS6 as well.

I already failed with the legacy stack because configuration variables 
like
RTEMS_HAS_NETWORK are not set with the waf-builder.

That's why I quite happily jumped on your legacy-net-extra
(For the beatnik CPU on which I can test directly on the hardware).

Unfortunately, it doesn't quite work yet:

git clone https://github.com/RTEMS/rtems-source-builder.git rsb

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)
Viele Grüße und Danke,
Heinz

> On 1. Mar 2021, at 22:48, Vijay Kumar Banerjee <vijay at rtems.org> wrote:
> 
> Hello all,
> 
> 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.
> 
> 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.
> 
> The following are the links to the repositories with the latest version 
> of changes:
> RTEMS: https://git.rtems.org/vijay/rtems.git/log/?h=devel-no-libnet
> Legacy Network: 
> https://git.rtems.org/vijay/rtems-net-legacy.git/log/?h=main
> 
> The following BSP family in RTEMS has been used with the old legacy 
> networking stack:
> Zynq, PC, Motorola Shared, Beatnik, mvme3100, mvme5500, gen68360, 
> uc5282, mvme 162/167
> 
> 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.
> 
> What's next?
> 
> 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.
> 
> 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.
> 
> Best regards,
> Vijay
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210303/edd5a6dc/attachment-0001.html>


More information about the devel mailing list