argus-clients-3.0.0.rc.63 make failure - OpenBSD4.1

Peter Van Epp vanepp at sfu.ca
Wed Feb 6 15:57:00 EST 2008


	Other than too few staff, things are going fine thanks :-). As to your
problem, my bad. Didn't read closely enough. You are failing on link not 
compile, there is likely a posix library missing. What its saying is the 
linker can't find a copy of sched_get_priority_max in the libraries in the 
search path. A check of Freebsd's man page says it should be in libc and indeed
it is (my OpenBSD system is at home):

nm /usr/lib/libc.a | grep sched_get_priority_max
sched_get_priority_max.o:
00000008 T __sys_sched_get_priority_max
00000008 W _sched_get_priority_max
00000008 W sched_get_priority_max

checking the OpenBSD man page to see if it is in a different library would
be a good bet. They may have a separate posix library that needs to be added
by configure. 

Peter Van Epp / Operations and Technical Support 
Simon Fraser University, Burnaby, B.C. Canada

On Wed, Feb 06, 2008 at 02:31:34PM -0600, Eric Pancer wrote:
> Hi Peter, thanks for the reply. Hope all is well.
> 
> On Feb 6, 2008 2:08 PM, Peter Van Epp <vanepp at sfu.ca> wrote:
> 
> > 1) add a && !defined (__OpenBSD__) to the end of the NetBSD conditional line,
> >    to force OpenBSD to use the default case. I think thats a long shot though.
> 
> I tried this; alas, it did not work.
> 
> > 2) edit /usr/include/sched.h and see if the definition is conditional (i.e. on
> > __POSIX__ being defined) which may point you to whats wrong by finding a whole
> > new string to chase to figure out what should be defining the variable
> > controlling the ifdef :-).
> 
> I'm not sure I understand (this is where my knowledge departs from
> what is required) what to do here.
> 
> > 3) run with the -E flag on the compile (write preprocessed code to stdout then
> >    stop) and see how the symbols come out, if sched_get_priority_min isn't
> >    defined then the likely answer is #2 and you need to figure out what should
> >    be defining the symbol that is ifdefing out the define.
> 
> Ok, this may be a bit noisy.....
> 
> making in ./common
> making in ./clients
> gcc -E -O3 -o ../bin/ra ra.o ../lib/argus_parse.a
> ../lib/argus_common.a ../lib/argus_client.a -lm -lreadline -ltermcap
> -lpthread
> gcc: ra.o: linker input file unused because linking not done
> gcc: ../lib/argus_parse.a: linker input file unused because linking not done
> gcc: ../lib/argus_common.a: linker input file unused because linking not done
> gcc: ../lib/argus_client.a: linker input file unused because linking not done
> gcc: -lm: linker input file unused because linking not done
> gcc: -lreadline: linker input file unused because linking not done
> gcc: -ltermcap: linker input file unused because linking not done
> gcc: -lpthread: linker input file unused because linking not done
> gcc -E -O3 -I. -I../include -I../common -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DL
> BL_ALIGN=1 -DHAVE_VFPRINTF=1 -DHAVE_STRCASECMP=1 -DHAVE_STRLCAT=1
> -DHAVE_STRLCPY=1 -DHAVE_STRDUP=1 -DHAVE_STRFTIME=1 -DHAVE_SETLINEBUF=1
> -DHAVE_SETENV=1 -DH
> AVE_ALARM=1 -DHAVE_GETADDRINFO=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRI
> NGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
> -DHAVE_INTTYPES_H=1 -DARGUS_THREADS=1 -DHAVE_SYS_SOCKIO_H=1
> -DHAVE_STRING_H=1 -DHAVE_FCNTL_H
> =1 -DHAVE_SYS_FILE_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ETHER_HOSTTON=1
> -DHAVE_STRERROR=1 -DHAVE_SRANDOMDEV=1 -DHAVE_NCURSES_H=1
> -DARGUS_CURSES=1 -DARGUS_NCURSES_H=
> 1 -DARGUS_READLINE=1 -DARGUS_READLINE_EVENT_HOOK=1 -DSTDC_HEADERS=1 -c
> ./racount.c
> # 1 "racount.c"
> # 1 "<built-in>"
> # 1 "<command line>"
> # 1 "racount.c"
> # 42 "racount.c"
> # 1 "/usr/include/unistd.h" 1 3 4
> # 38 "/usr/include/unistd.h" 3 4
> # 1 "/usr/include/sys/cdefs.h" 1 3 4
> # 41 "/usr/include/sys/cdefs.h" 3 4
> # 1 "/usr/include/machine/cdefs.h" 1 3 4
> # 42 "/usr/include/sys/cdefs.h" 2 3 4
> # 39 "/usr/include/unistd.h" 2 3 4
> # 1 "/usr/include/sys/types.h" 1 3 4
> # 44 "/usr/include/sys/types.h" 3 4
> # 1 "/usr/include/sys/_types.h" 1 3 4
> # 37 "/usr/include/sys/_types.h" 3 4
> # 1 "/usr/include/machine/_types.h" 1 3 4
> # 45 "/usr/include/machine/_types.h" 3 4
> typedef signed char __int8_t;
> typedef unsigned char __uint8_t;
> typedef short __int16_t;
> typedef unsigned short __uint16_t;
> typedef int __int32_t;
> typedef unsigned int __uint32_t;
> 
> [... cut to relevance ....]
> 
> # 45 "../include/argus_os.h" 2
> # 1 "/usr/include/sched.h" 1 3 4
> # 54 "/usr/include/sched.h" 3 4
> struct sched_param
> {
>         int sched_priority;
> };
> 
> int sched_setparam(pid_t, const struct sched_param *);
> int sched_getparam(pid_t, struct sched_param *);
> 
> int sched_setscheduler(pid_t, int, const struct sched_param *);
> int sched_getscheduler(pid_t);
> 
> int sched_yield(void);
> int sched_get_priority_max(int);
> int sched_get_priority_min(int);
> struct timespec;
> int sched_rr_get_interval(pid_t, struct timespec *);
> 
> [...cut....]
> 
> int pthread_attr_getinheritsched(const pthread_attr_t *, int *);
> int pthread_attr_getschedparam(const pthread_attr_t *,
>                         struct sched_param *);
> int pthread_attr_getschedpolicy(const pthread_attr_t *, int *);
> int pthread_attr_getscope(const pthread_attr_t *, int *);
> int pthread_attr_setinheritsched(pthread_attr_t *, int);
> int pthread_attr_setschedparam(pthread_attr_t *,
>                         const struct sched_param *);
> int pthread_attr_setschedpolicy(pthread_attr_t *, int);
> int pthread_attr_setscope(pthread_attr_t *, int);
> int pthread_getschedparam(pthread_t pthread, int *,
>                         struct sched_param *);
> int pthread_setschedparam(pthread_t, int,
>                         const struct sched_param *);
> int pthread_getconcurrency(void);
> int pthread_setconcurrency(int);
> 
> - Eric



More information about the argus mailing list