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 <chris...@zoulas.com>: > On May 5, 10:14pm, charles.cui1...@gmail.com (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 >