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:
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" | ^~~~~~~
This is expected.
getservbyport_r() just calls
getservbyport() in the legacy implementation so is not reentrant.
[ 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.
This looks like an include directory needs to be added to the build. The code in question is part of the pattern for an adapter kit Till tended to include to port newer BSD drivers to the legacy stack.
At this point, the "newer BSD" is quite old and the BSD version in the legacy stack is ancient. Lesson is using old, new, future, next generation, etc with technology is inevitable to be wrong eventually.
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
Hopefully this is fixed by adding the include directory or something similar.
Vijay should speak up on his desired solution.
Heinz, how did the code find this when it was built in the tree? Did it have a -I for this source directory?
--joel | ^~~~~ ../../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
_______________________________________________
devel mailing list
devel at rtems.org
http://lists.rtems.org/mailman/listinfo/devel
- Replies:
- Re: Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository junkes via Core-talk
- Re: Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository Vijay Kumar Banerjee via Core-talk
- References:
- Re: Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository junkes via Core-talk
- Navigate by Date:
- Prev:
Re: Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository junkes via Core-talk
- Next:
[Bug 1902560] Re: Read info items using a filter Dirk Zimoch via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
<2021>
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository junkes via Core-talk
- Next:
Re: Announcement: Legacy libnetworking will be removed from RTEMS and will be placed in a separate repository junkes via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
<2021>
2022
2023
2024
|