tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: refine of the GSOC project



Are you running a kernel and userland of different versions?  Don't do that,
if you're trying to do conformance testing!

On Sat, May 07, 2016 at 08:57:38PM -0700, Charles Cui wrote:
> Hi Christos,
> 
>    I found the reason of _SC_TIMER_MAX not being found.
> Other functions that netbsd already provided but not found should have
> the same reason.
> Although I compiled the kernel myself (verified by uname), I found the
> header files in /usr/include/sys/unistd.h is not updated.  After I
> copied the header file in
> kernel source into /usr/include/sys/unistd.h manually, it works.
> But I am wondering why a kernel build does not copy headers into the
> system folders?
> To update kernel faster, what I did was
> cd /usr/src; ./build.sh -U -O /usr/obj -j8  kernel=<my kenrel name>
> after building, I copy netbsd file into /.
> Are there best practices to install header files? (copy sys headers
> from kernel source into system path)
> I found online that there is a command "make includes"
> when I executed it in the kernel source /usr/src/sys, it promotes some errors.
> By the way, thanks Matthew for letting me know nxr.netbsd.org, I
> already used it.
> 
> 2016-05-06 5:46 GMT-07:00 Christos Zoulas <christos%zoulas.com@localhost>:
> > On May 5, 10:14pm, charles.cui1984%gmail.com@localhost (Charles Cui) wrote:
> > -- Subject: refine of the GSOC project
> >
> > | Hi guys,
> > |
> > |    I spend some time on researching the project and have some results.
> > | Based on the results, I can split the project into multiple parts and expect
> > | to complete the project in divide-and-concur way.
> > |
> > | I found a lot of building errors in the posix benchmark are because of
> > | compiler settings. Some variables are defined and never used, some
> > | other variables are set and not used. In the makefile of the posix
> > | benchmark, it used -Werror and -Wall as the flags, which will report
> > | those cases as errors.
> > | After disabling the flags, I can classify all remaining errors into
> > | multiple classes, which are listed below. In each class, it requires
> > | to provide a particular macro, function or some data structures. I
> > | will continue to read related code base and find the best way to solve
> > | all those problems. By the way, http://nxr.netbsd.org/ is super
> > | helpful to view kernel code, thanks Christos for recommending.
> > |
> > | timers:
> > |    _SC_TIMER_MAX
> >
> > fgrep -r _SC_TIMER_MAX /usr/include/
> > /usr/include/sys/unistd.h:#define       _SC_TIMER_MAX                   88
> >
> > |    _SC_CPUTIME
> > |    _SC_THREAD_CPUTIME
> > |    _SC_DELAYTIMER_MAX
> >
> > These can be aded
> > |
> > |    CLOCK_PROCESS_CPUTIME_ID
> > |    CLOCK_THREAD_CPUTIME_ID
> > |    clock_getcpuclockid
> > |    getdate
> > |    strptime
> > |    daylight
> > |    timezone
> > |    pthread_getcpuclockid
> > |    struct timespec
> >
> > Again, some of these exist. Perhaps it is using a compiler define
> > that hides them and should not?
> >
> > | pthreads:
> > |    PTHREAD_PRIO_INHERIT
> > |    PTHREAD_PRIO_NONE
> > |    PTHREAD_PRIO_PROTECT
> > |    PTHREAD_STACK_MIN
> > |    PTHREAD_ONCE_INIT
> > |    STACKSIZE
> > |    pthread_barrierattr_getpshared
> > |    pthread_barrierattr_setpshared
> > |    pthread_mutexattr_setpshared
> > |    pthread_mutexattr_getpshared
> > |    pthread_condattr_setpshared
> > |    pthread_condattr_getpshared
> > |    pthread_condattr_setclock
> > |    pthread_condattr_getclock
> > |    pthread_mutexattr_getprioceiling
> > |    pthread_mutexattr_setprioceiling
> > |    pthread_mutexattr_getprotocol
> > |    pthread_mutexattr_setprotocol
> > |    pthread_rwlockattr_getpshared
> > |    pthread_rwlockattr_setpshared
> > |    pthread_mutex_getprioceiling
> > |    pthread_mutex_timedlock
> > |    pthread_setaffinity_np
> > |    pthread_getattr_np
> >
> > fgrep -r pthread_setaffinity_np /usr/include/
> > /usr/include/pthread.h:int      pthread_setaffinity_np(pthread_t, size_t, cpuset_t *);
> >
> > | scheduler:
> > |     SCHED_SPORADIC
> >
> > Does freebsd have this?
> >
> > | signals:
> > |
> > |     SIGPOLL
> > |     SIGRTMIN
> > |     SIGRTMAX
> > |     SIGNAL
> > |     SIGSTKSZ
> > |     SIG_INVALID
> > |     SIGTOTEST
> > |     _SC_REALTIME_SIGNALS
> > |     _SC_SIGQUEUE_MAX
> > |     SA_ONSTACK
> > |     SA_RESETHAND
> > |     SA_RESTART
> > |     SA_NODEFER
> > |     SS_ONSTACK
> > |     SS_DISABLE
> > |     MINSIGSTKSZ
> >
> > Real-time signals is an area we are missing.
> >
> > |     struct sigstack
> > |     stack_t
> > |     bsd_signal
> > |     killpg
> > |     sigaltstack_test
> > |     sigaltstack
> > |     sighold
> > |     sigignore
> > |     siginterrupt
> > |     sigpause
> > |     sigrelse
> > |     sigset
> > |
> > | mmap:
> > |     POSIX_TYPED_MEM_ALLOCATE
> > |     POSIX_TYPED_MEM_ALLOCATE_CONTIG
> > |     POSIX_TYPED_MEM_MAP_ALLOCATABLE
> > |     struct posix_typed_mem_info
> > |     posix_mem_offset
> > |     posix_typed_mem_get_info
> > |     posix_typed_mem_open
> >
> > I dont know what these are
> >
> > | aio
> > |     struct rlimit
> >
> > We have struct rlimit, again we need to check the compilation flags.
> >
> > | cpuset
> > |     CPU_ZERO
> > |     CPU_SETSIZE
> > |     CPU_SET
> > |     cpu_set_t
> >
> > This is linux-specific; we have our own and the tests need to be adjusted
> >
> > |
> > | semaphore
> > |     _SC_SEM_NSEMS_MAX
> > |     features.h
> >
> > christos
> >

-- 
  Thor Lancelot Simon	                                     tls%panix.com@localhost

  "We cannot usually in social life pursue a single value or a single moral
   aim, untroubled by the need to compromise with others."      - H.L.A. Hart


Home | Main Index | Thread Index | Old Index