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
Sun Jun 14 15:17:15 UTC 2020


I can't find configure in the zip-file (master.zip) which you are loading..
ptpd-master still needs to be reconfigured (autoreconf -vi)
This reconfigure is missing in the cfg file.

It only works the second time and therefore cannot really be used at the moment. 
Unfortunately I don't know why it only works every second time.

So you have to do the reconfigure by hand once (2 times) and then save the result as tgz 
and load it every time you run the build.

You should also compare the %source with the right so that you do not get confused.

Heinz

E.g.
in rtems-source-builder/rtems

 cd sources/
unzip master.zip
cd ptpd-master/
autoreconf -vi -> fails
autoreconf -vi -> ok
cd ..
tar cvzf master.tgz ptpd-master
mv master.tgz $HOME
echo $HOME -> /home/h1
cd ..
vi ../source-builder/config/ptpd-2-1.cfg -> add the new source
sha512sum /home/h1/master.tgz
vi ../source-builder/config/ptpd-2-1.cfg -> add the hash line
../source-builder/sb-set-builder --log log.ptpd.txt --with-rtems-bsp=xilinx_zynq_a9_qemu --host=arm-rtems5 --prefix /home/h1/GSOC/RTEMS/5.0.0-m2003 net/ptpd

tail -200 rsb-report-ptpd-master-arm-rtems5-1.txt -> now on a real error ;-)

the ptpd-2-1.cfg

#
# PTPD 2.x.x Version 1.
#
# This configuration file configure's, make's and install's PTPD.
#

%if %{release} == %{nil}
%define release 1
%endif

Name:      ptpd-%{ptpd_version}-%{_host}-%{release}
Summary:   PTPD is Precision Time Protocol Daemon.
Version:   %{ptpd_version}
Release:   %{release}
URL:       http://ptpd.sourceforge.net/

#
# PTPD Source
#
#%source set ptpd https://github.com/mritunjaysharma394/ptpd/archive/master.zip
%source set ptpd file:///home/h1/master.tgz
%hash sha512 master.tgz 9809119ddac8e98ba871f52a74230d3fc29f87ae7ffd7ece1550f196a13e83a71aaffb3ae94e6c7f334e06d612a6913d2fb070c4db05813b9aaccaa04ca91249


#
# Prepare the source code.
#
%prep
 build_top=$(pwd)

 source_dir_ptpd="ptpd-%{ptpd_version}"
…


> On 13. Jun 2020, at 23:37, 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/20200614/e6aef925/attachment-0001.bin>


More information about the devel mailing list