On Thu, Jun 4, 2020 at 1:38 PM junkes <jun...@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-de...@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.hu...@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@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
>
> _______________________________________________
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to