GSoC 2020: [rtems/rsb]: Error while adding ptp support. This time building for xilinx_zynq_a9_qemu

Heinz Junkes junkes at fhi-berlin.mpg.de
Mon Jun 15 20:46:47 UTC 2020


If you want to get ahead, just make a version that already has a configure, then
you can save yourself the trouble with autoconf. I'd put that in the back.
Heinz 


> On 15. Jun 2020, at 20:46, Mritunjay Sharma <mritunjaysharma394 at gmail.com> wrote:
> 
> Hello everyone, 
> 
> The latest update is that by changing a couple of things in source-builder/config/ptpd-2-1.cfg which are:
> 
> "%source setup ptpd -q -n ptpd-%{ptpd_version}
> %patch setup ptpd -p1
> 
> +automake --add-missing 
> +autoreconf --install --force 
> cd ${build_top}
> 
> %build"
> 
> GitHub Link: https://github.com/RTEMS/rtems-source-builder/commit/413ea684f1e8672f921ce80abbc59f1e352acbc2
> 
> The earlier configure: error: cannot find install-sh, install.sh, or shtool in build-aux "../ptpd-master"/build-aux has gone
> but another error has come as follows:
> 
> "configure.ac:28: installing './compile'
> configure.ac:16: installing './install-sh'
> configure.ac:16: installing './missing'
> configure.ac:13: error: required file 'config.h.in' not found
> src/Makefile.am: installing './depcomp'
> shell cmd failed: /bin/sh -ex  /home/mritunjay/development/rtems/rsb/rtems/build/ptpd-master-arm-rtems5-1/do-build
> error: building ptpd-master-arm-rtems5-1"
> 
> What can be the reason for this? Should I create another tar of this and set it as the source?
> The trace and report are attached. The tutorial by Heinz has again helped me a lot! 
> Thank you for that again!
> 
> Thanks,
> Mritunjay
> 
> 
> On Sun, Jun 14, 2020 at 3:07 AM Mritunjay Sharma <mritunjaysharma394 at gmail.com> wrote:
> First of all Heinz, I would like to thank you for such a wonderful guide which really helped me fix a lot of errors. 
> After following your advice, I made certain changes to make PTPd work, 
> few errors came again but I managed to remove them with the use of Google. 
> 
> However, the recent most error has caught me in a fix and I am still trying to figure it out where I went wrong. 
> 
> https://github.com/mritunjaysharma394/rtems-source-builder/tree/master/source-builder
> https://github.com/ptpd/ptpd/compare/master...mritunjaysharma394:master
> 
> The above two links will tell what changes I have made and the error that I am receiving now is: 
> "configure: WARNING: unrecognized options: --disable-shared
> configure: error: cannot find install-sh, install.sh, or shtool in build-aux "../ptpd-master"/build-aux
> shell cmd failed: /bin/sh -ex  /home/mritunjay/development/rtems/rsb/rtems/build/ptpd-master-arm-rtems5-1/do-build
> error: building ptpd-master-arm-rtems5-1"
> 
> 
> I have attached the trace log file and error report. 
> I tried to google and made few more changes in ptpd Makefile.am but it didn't help.
> 
> It will be very kind of you all to help me figure out on how to tackle this bug.
> 
> Thanks
> Mritunjay
> 
> On Sun, Jun 7, 2020 at 10:19 AM junkes <junkes at fhi-berlin.mpg.de> wrote:
> This is an unusually long text for the mailing list. I tried to write a kind 
> of tutorial using an example for a GSOC student. I'm looking forward to the 
> comments from the pros and can write it down completely. 
> 
> Hello, Mritunjay
> 
> if I understood it correctly, one idea of the rtems source builder is to make existing 
> software packages usable for RTEMS. Most existing software packages do not work without 
> changes in the RTEMS environment. You have already noticed this with ptpd ;-) 
> 
> The most common auto-tools and configure have trouble making the correct 
> assumptions for the rtems environment. Here you have to intervene. This can 
> be done with the builder-cfg files. 
> 
> This is a bit of hard work and you have to approach it with small steps. 
> You also have to use not so clean tricks in different places. When you have 
> achieved the integration you can/must then try to optimize it so that it becomes 
> generally valid. 
> 
> That's my policy. Maybe the others here in the maillist have more ideas, also for me. 
> 
> I have now tried to implement what I mean using a similar example (openntp). 
> Unfortunately, I haven't finished yet, but I hope to clear a few hurdles for you. 
> 
> I was doing some digging around and I came across this: 
> https://github.com/openntpd-portable/openntpd-portable 
> 
> Here I was then confronted with the same problems as you with autoreconf etc. Here it 
> didn't work, just run autoreconf twice and generate a tar-file for installation like 
> I did with the ptpd from github. 
> Then I found this: https://artfiles.org/openbsd/OpenNTPD/openntpd-6.2p3.tar.gz 
> 
> Now I have made a "standard" config file for rsb: 
> 
> # 
> # OpenNTPd 6.2p3 Version 1. 
> # 
> # This configuration file configure's, make's and install's OpenNTPd. 
> # 
> 
> %if %{release} == %{nil} 
> %define release 1 
> %endif 
> 
> Name:      openntpd-%{openntpd_version}-%{_host}-%{release} 
> Summary:   NTP is the Network Time Protocol. 
> Version:   %{openntpd_version} 
> Release:   %{release} 
> URL:       https://github.com/openntpd-portable 
> 
> # 
> # NTP Source 
> # 
> %source set openntpd https://artfiles.org/openbsd/OpenNTPD/openntpd-%{openntpd_version}.tar.gz 
> %hash sha512 openntpd-%{openntpd_version}.tar.gz 56a04bfd8b161b365607673ac80086ff53ae943938fa49bf52edbc541432eca30730a46a4af581fe26ce3bbceb144cb25982a38959b7a3f9304c727fe60f9
> f50 
> 
> # 
> # Prepare the source code. 
> # 
> %prep
> build_top=$(pwd) 
> 
> 
>  source_dir_openntpd="openntpd-%{openntpd_version}" 
>  %source setup openntpd -q -n openntpd-%{openntpd_version} 
>  %patch setup openntpd -p1 
> 
>  cd ${build_top} 
> 
> %build 
>  build_top=$(pwd) 
> 
>  %{build_directory} 
> 
>  mkdir -p ${build_dir} 
>  cd ${build_dir} 
> 
>  %{host_build_flags} 
> 
>  ../${source_dir_openntpd}/configure \ 
>    --host=%{_host} \ 
>    --prefix=%{_prefix} \ 
>    --bindir=%{_bindir} \ 
>    --exec_prefix=%{_exec_prefix} \ 
>    --includedir=%{_includedir} \ 
>    --libdir=%{_libdir} \ 
>    --libexecdir=%{_libexecdir} \ 
>    --mandir=%{_mandir} \ 
>    --infodir=%{_infodir} \ 
>    --datadir=%{_datadir} \ 
>    --disable-shared \ 
>    --enable-static \ 
>    --with-gnu-ld \ 
>    --disable-https-constraint 
> 
>  %{__make} all 
> 
>  cd ${build_top} 
> 
> %install 
>  build_top=$(pwd) 
> 
>  %{__rmdir} $SB_BUILD_ROOT 
> 
> cd ${build_dir} 
>  %{__make} DESTDIR=$SB_BUILD_ROOT install 
>  cd ${build_top} 
> 
> 
> Then I "executed" that. 
> [h1 at earth rtems (master *)]$ ../source-builder/sb-set-builder --log log.ntpd.txt --with-rtems-bsp=xilinx_zynq_a9_qemu --host=arm-rtems5 --prefix /home/h1/GSOC/RTEMS/5.0.0-m20
> 03 net/ntpd 
> RTEMS Source Builder - Set Builder, 5 (26e335ca159e modified) 
> Build Set: net/ntpd 
> config: net/openntpd-6.2p3-1.cfg 
> package: openntpd-6.2p3-arm-rtems5-1 
> building: openntpd-6.2p3-arm-rtems5-1 
> error: building openntpd-6.2p3-arm-rtems5-1 
> Build FAILED 
>  See error report: rsb-report-openntpd-6.2p3-arm-rtems5-1.txt 
> error: building openntpd-6.2p3-arm-rtems5-1 
> Build Set: Time 0:00:16.036623 
> Build FAILED 
> 
> Error! I looked at that one: 
> [h1 at earth rtems (master *)]$ tail -20 rsb-report-openntpd-6.2p3-arm-rtems5-1.txt 
>  CC       setproctitle.lo 
>  CC       bsd-setresgid.lo 
>  CC       bsd-setresuid.lo 
>  CCLD     libcompat.la 
> arm-rtems5-ar: `u' modifier ignored since `D' is the default (see `U') 
>  CCLD     libcompatnoopt.la 
> arm-rtems5-ar: `u' modifier ignored since `D' is the default (see `U') 
> make[1]: Leaving directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/compat' 
> Making all in src 
> make[1]: Entering directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src' 
>  CC       ntpd-client.o 
> arm-rtems5-gcc: fatal error: /home/h1/GSOC/RTEMS/5.0.0-m2003/arm-rtems5/xilinx_zynq_a9_qemu/lib/bsp_specs: attempt to rename spec 'endfile' to already defined spec 'old_endfi
> le' 
> compilation terminated. 
> Makefile:526: recipe for target 'ntpd-client.o' failed 
> make[1]: *** [ntpd-client.o] Error 1 
> make[1]: Leaving directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src' 
> Makefile:401: recipe for target 'all-recursive' failed 
> make: *** [all-recursive] Error 1 
> shell cmd failed: /bin/sh -ex  /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/do-build 
> 
> In build/openntpd-6.2p3-arm-rtems5-1/openntpd-6.2p3/src/Makefile.am I found that CFLAGS gets includes twice which leads to this error "attempt to rename..." 
> ... 
> ntpd_CFLAGS = $(CFLAGS) 
> ntpd_CFLAGS += -DSYSCONFDIR=\"$(sysconfdir)\" 
> ntpd_CFLAGS += -DLOCALSTATEDIR=\"$(localstatedir)\" 
> ... 
> 
> Then I changed the cfg-file: 
> 
> ... 
> %{host_build_flags} 
> 
> # src/Makefile.am includes CFLAGS twice? 
> # this leads to : bsp_specs: attempt to rename spec 'endfile' to already defined spec 'old_endfile' 
> # 
>  sed -i 's/ntpd_CFLAGS = $(CFLAGS)/ntpd_CFLAGS = $(CFLAGS)/g' ../${source_dir_openntpd}/src/Makefile.am 
>  sed -i 's/ntpd_CFLAGS += -DSYSCONFDIR=/ntpd_CFLAGS = -DSYSCONFDIR=/g' ../${source_dir_openntpd}/src/Makefile.am 
> 
>  ../${source_dir_openntpd}/configure \ 
>    --host=%{_host} \ 
> ... 
> 
> Now I've come a long way, but 
> 
> [h1 at earth rtems (master *)]$ tail -20 rsb-report-openntpd-6.2p3-arm-rtems5-1.txt 
>       asnprintf 
>  CC       ntpd-ntp.o 
>  CC       ntpd-ntp_dns.o 
> ../../openntpd-6.2p3/src/ntp_dns.c: In function 'ntp_dns': 
> ../../openntpd-6.2p3/src/ntp_dns.c:58:6: warning: implicit declaration of function 'setpriority'; did you mean 'setprotoent'? [-Wimplicit-function-declaration] 
>  if (setpriority(PRIO_PROCESS, 0, 0) == -1) 
>      ^~~~~~~~~~~ 
>      setprotoent 
> ../../openntpd-6.2p3/src/ntp_dns.c:58:18: error: 'PRIO_PROCESS' undeclared (first use in this function); did you mean 'EINPROGRESS'? 
>  if (setpriority(PRIO_PROCESS, 0, 0) == -1) 
>                  ^~~~~~~~~~~~ 
>                  EINPROGRESS 
> ../../openntpd-6.2p3/src/ntp_dns.c:58:18: note: each undeclared identifier is reported only once for each function it appears in 
> Makefile:624: recipe for target 'ntpd-ntp_dns.o' failed 
> make[1]: *** [ntpd-ntp_dns.o] Error 1 
> make[1]: Leaving directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src' 
> make: *** [all-recursive] Error 1
> Makefile:401: recipe for target 'all-recursive' failed 
> shell cmd failed: /bin/sh -ex  /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/do-build 
> 
> Now a little bit of searching... 
> 
> Adding "#include <rtems/bsd/sys/resource.h>" solves the problem. 
> 
> But the next one arises: 
> 
> make[1]: Entering directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src' 
>  CC       ntpd-ntpd.o 
>  CC       ntpd-parse.o 
> parse.y: In function 'yyerror': 
> parse.y:473:6: warning: implicit declaration of function 'vasprintf'; did you mean 'vasnprintf'? [-Wimplicit-function-declaration] 
> parse.y: In function 'yylex': 
> parse.y:686:22: warning: implicit declaration of function 'strtonum'; did you mean 'strtoul'? [-Wimplicit-function-declaration] 
>  CC       ntpd-fake-sensors.o 
>  CC       ntpd-server.o 
> ../../openntpd-6.2p3/src/server.c: In function 'setup_listeners': 
> ../../openntpd-6.2p3/src/server.c:65:21: error: 'struct if_data' has no member named 'ifi_rdomain'; did you mean 'ifi_addrlen'? 
>      rdomain = ifd->ifi_rdomain; 
>                     ^~~~~~~~~~~ 
>                     ifi_addrlen 
> Makefile:708: recipe for target 'ntpd-server.o' failed 
> 
> That looks a little more complicated. It uses an if_data structure that is probably only available in openbsd? 
> 
> But also here google helps ;-) 
> Here I found a patch : https://github.com/freebsd/freebsd-ports/tree/master/net/openntpd/files 
> 
> [h1 at earth build-cxc (master *)]$ patch ../openntpd-6.2p3/src/server.c /tmp/openntp/openntpd-6.2p3/patch-src_server.c 
> 
> And it's gotten me this far: 
> 
> [h1 at earth build-cxc (master *)]$ make 
> Making all in include 
> make[1]: Entering directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/include' 
> make[1]: Nothing to be done for 'all'. 
> make[1]: Leaving directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/include' 
> Making all in compat 
> make[1]: Entering directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/compat' 
> make[1]: Nothing to be done for 'all'.
> make[1]: Leaving directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/compat' 
> Making all in src 
> make[1]: Entering directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src' 
>  CC       ntpd-server.o 
>  CC       ntpd-util.o 
>  CCLD     ntpd 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntp_dns.o: in function `ntp_dns': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntp_dns.c:59: undefined reference to `setpriority' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntpd.o: in function `main': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntpd.c:243: undefined reference to `setpriority' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/b
> uild-cxc/src/../../openntpd-6.2p3/src/ntpd.c:251: undefined reference to `daemon' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/b
> uild-cxc/src/../../openntpd-6.2p3/src/ntpd.c:330: undefined reference to `daemon' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntpd.o: in function `dispatch_imsg': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntpd.c:435: undefined reference to `daemon' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntpd.o: in function `ntpd_adjtime': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntpd.c:487: undefined reference to `update_time_sy
> nc_status' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntpd.o: in function `ntpd_adjfreq': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntpd.c:498: undefined reference to `adjfreq' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/b
> uild-cxc/src/../../openntpd-6.2p3/src/ntpd.c:522: undefined reference to `adjfreq' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntpd.o: in function `ntpd_settime': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntpd.c:542: undefined reference to `settimeofday' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: ntpd-ntpd.o: in function `readfreq': 
> /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src/../../openntpd-6.2p3/src/ntpd.c:565: undefined reference to `adjfreq' 
> /home/h1/GSOC/RTEMS/5.0.0-m2003/lib/gcc/arm-rtems5/7.5.0/../../../../arm-rtems5/bin/ld: /home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/b
> uild-cxc/src/../../openntpd-6.2p3/src/ntpd.c:574: undefined reference to `adjfreq' 
> collect2: error: ld returned 1 exit status 
> Makefile:476: recipe for target 'ntpd' failed 
> make[1]: *** [ntpd] Error 1 
> make[1]: Leaving directory '/home/h1/GSOC/RTEMS_DEV/rtems-source-builder/rtems/build/openntpd-6.2p3-arm-rtems5-1/build-cxc/src' 
> Makefile:401: recipe for target 'all-recursive' failed 
> make: *** [all-recursive] Error 1 
> 
> This is where I am now. From now on, it's gonna be exciting. Now it's all about anchoring the daemon process in RTEMS. 
> But that is nice work now. I still have to do it. 
> 
> But I wanted to show you this step-by-step so you can get over the first hurdles. 
> I hope this helps you and it was not too long. 
> Heinz
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On 2020-06-06 01:31, Mritunjay Sharma wrote:
> 
>>  
>> Thank you so much Heinz for such a detailed response. 
>> It really helped me a lot.
>>  
>> As advised by you and Heinz, I changed the source to https://github.com/mritunjaysharma394/ptpd/archive/master.zip
>> with suggested changes. However, I have encountered few bugs again related to autoreconf. 
>> It looks somewhat like this: 
>>  
>> + autoreconf -i -v
>> autoreconf: Entering directory `.'
>> autoreconf: configure.ac: not using Gettext
>> autoreconf: running: aclocal -I m4
>> autoreconf: configure.ac: tracing
>> autoreconf: configure.ac: creating directory build-aux
>> autoreconf: configure.ac: not using Libtool
>> autoreconf: running: /home/mritunjay/development/rtems/5/bin/autoconf
>> configure.ac:28: error: possibly undefined macro: AC_PROG_LIBTOOL
>>       If this token and others are legitimate, please use m4_pattern_allow.
>>       See the Autoconf documentation.
>> autoreconf: /home/mritunjay/development/rtems/5/bin/autoconf failed with exit status: 1
>> shell cmd failed: /bin/sh -ex  /home/mritunjay/development/rtems/rsb/rtems/build/ptpd-master-arm-rtems5-1/do-build
>> error: building ptpd-master-arm-rtems5-1
>>  
>> I have attached the error report as well and changes in cfg files can be found here:
>> https://github.com/mritunjaysharma394/rtems-source-builder/commit/6b6bb2b3bd778ebe56e9a1bf3aec1747b078fd39
>>  
>> Thanks,
>> Mritunjay
>>  
>> 
>> On Fri, Jun 5, 2020 at 2:53 AM Gedare Bloom <gedare at rtems.org> wrote:
>> On Thu, Jun 4, 2020 at 1:38 PM junkes <junkes at fhi-berlin.mpg.de> wrote:
>> >
>> > Hallo Mritunjay,
>> >
>> > You can't just take the github ptpd sources and make them work in RTEMS. You have to make some configuration
>> > and sources changes before you can build the with the rsb.
>> >
>> > Some things like the sys/cpuset.h seems not to be fully compatible yet and so the configure simply makes
>> > "wrong" decisions. E.g. defines HAVE_SYS_CPUSET_H = 1 as sys/cpuset.h exists.I played a little bit with it and reset
>> > the definition in ptpd-master/src/ptpd.h  (quick and dirty) and could reduce the error messages because there is a query for
>> > this variable in the code (src/dep/sys.c):
>> >
>> > in ptpd.h after the include of the created configs :
>> >
>> > ...
>> > #ifdef HAVE_CONFIG_H
>> > # include <config.h>
>> > #endif /* HAVE_CONFIG_H */
>> >
>> > #undef HAVE_NTP_GETTIME
>> > #undef HAVE_SYS_CPUSET_H
>> >
>> > #ifdef linux
>> > ...
>> >
>> > in src/dep/sys.c
>> >
>> > ...
>> > #ifdef HAVE_SYS_CPUSET_H
>> >        cpuset_t mask;
>> >        CPU_ZERO(&mask);
>> >        if(cpu >= 0) {
>> >            CPU_SET(cpu,&mask);
>> >        } else {
>> >                int i;
>> >                for(i = 0;  i < CPU_SETSIZE; i++) {
>> >                        CPU_SET(i, &mask);
>> >                }
>> >        }
>> >        return(cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID,
>> >                              -1, sizeof(mask), &mask));
>> > #endif /* HAVE_SYS_CPUSET_H */
>> >
>> > In src/dep/constants_dep.h  one can find:
>> >
>> > * platform dependent */
>> >
>> > #if !defined(linux) && !defined(__NetBSD__) && !defined(__FreeBSD__) && \
>> > !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__sun) && !defined(__QNXNTO__)
>> > #error PTPD hasn't been ported to this OS - should be possible \
>> > if it's POSIX compatible, if you succeed, report it to ptpd-devel at sourceforge.net
>> > #endif
>> >
>> > here I added "&& !defined(__rtems__)
>> >
>> > and here:
>> > ...
>> > #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__sun) || defined(__QNXNTO__) || defined(__rtems__)
>> > # include <sys/types.h>
>> > # include <sys/socket.h>
>> > #ifdef HAVE_SYS_SOCKIO_H
>> > #include <sys/sockio.h>
>> > #endif /* HAVE_SYS_SOCKIO_H */
>> > # include <netinet/in.h>
>> > # include <net/if.h>
>> > # include <net/if_dl.h>
>> > # include <net/if_types.h>
>> > #ifdef HAVE_NET_IF_ETHER_H
>> > #  include <net/if_ether.h>
>> > ...
>> >
>> > and so on... You'd have to bite through it once and then you will surely get it compiled.
>> >
>> Great start Heinz! Mritunjay, I think this definitely the way forward.
>> Later, you might try to circle back and fix the hacks in nicer ways by
>> learning how to make the autoconf stuff work correctly, and contribute
>> those fixes back upstream to ptpd project.
>> 
>> > HTH Heinz
>> >
>> >
>> >
>> > On 2020-06-04 20:29, Mritunjay Sharma wrote:
>> >
>> >
>> >
>> > On Thu, Jun 4, 2020 at 11:07 PM Sebastian Huber <sebastian.huber at embedded-brains.de> wrote:
>> >
>> > On 04/06/2020 16:22, Gedare Bloom wrote:
>> >
>> > >>> In the github version this code is conditional on sys/cpuset.h being present.
>> > >>>
>> > > Well, we do have a sys/cpuset.h in newlib. It doesn't have these BSD
>> > > definitions though. Probably either:
>> > > 1. Add more stuff to sys/cpuset.h to make it support BSDisms. This
>> > > would mean adding cpuset_setaffinity support in rtems, I guess.
>> > > 2. Figure out how to disable the conditional code using the
>> > > cpuset_setaffinity function.
>> > The <sys/cpuset.h> is already as compatible as possible to glibc and
>> > FreeBSD. There is always room for improvement, however, in this area it
>> > will be difficult.
>> >
>> >
>> > Please it would be kind of you all to guide on what is the best thing I can do next. It is looking
>> > a little difficult. If something similar has been done earlier, sharing it can be a lot helpful to take a cue.
>> >
>> > Mritunjay
>> >
>> > _______________________________________________
>> > 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
> 
> 
> <rsb-report-ptpd-master-arm-rtems5-1.txt><log>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2542 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200615/1afffbf0/attachment-0001.bin>


More information about the devel mailing list