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

</body></html>