pkgsrc-Users archive

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

Re: sysutils/cdrtools fails to build on -current

On Friday 14 March 2008 13:33:50 Thomas Klausner wrote:
> On Fri, Mar 14, 2008 at 12:26:26PM +0000, 
> wrote:
> > # make show-var VARNAME=NETBSDLIB.rt
> > -lrt
> >
> > # head -n 1 patches/*aa
> > $NetBSD: patch-aa,v 1.5 2008/03/07 19:38:58 wiz Exp $
> Hm, I'm out of ideas.

I build all packages inside chroot. I use /scripts/compiler_wrappers/gcc shell 
script as gcc wrapper to force my own options. I added a line to this script 
to print out the parameters passed to gcc

# cat /scripts/compiler_wrappers/gcc
echo "-->> /usr/bin/gcc $@"
exec /usr/bin/gcc "$@" -Os -mcpu=ultrasparc -mvis -s -pipe \
  -Du_int8_t=uint8_t -Du_int16_t=uint16_t \
  -Du_int32_t=uint32_t -Du_int64_t=uint64_t

So when building cdda2wav, I got the following output:

        ==> LINKING "OBJ/sparc-netbsd-gcc/cdda2wav"
-->> /usr/bin/gcc -o OBJ/sparc-netbsd-gcc/cdda2wav 
.o OBJ/sparc-netbsd-gcc/interface.o OBJ/sparc-netbsd-gcc/semshm.o 
sd-gcc/resample.o OBJ/sparc-netbsd-gcc/scsi_scan.o OBJ/sparc-netbsd-gcc/toc.o 
J/sparc-netbsd-gcc/wav.o OBJ/sparc-netbsd-gcc/sun.o OBJ/sparc-netbsd-gcc/raw.o 
BJ/sparc-netbsd-gcc/md5c.o OBJ/sparc-netbsd-gcc/setuid.o 
ngbuff.o OBJ/sparc-netbsd-gcc/sndconfig.o OBJ/sparc-netbsd-gcc/scsi_cmds.o 
parc-netbsd-gcc/aiff.o OBJ/sparc-netbsd-gcc/aifc.o 
.o OBJ/sparc-netbsd-gcc/cd_misc.o OBJ/sparc-netbsd-gcc/modes.o 
gcc/ioctl.o OBJ/sparc-netbsd-gcc/sha_func.o OBJ/sparc-netbsd-gcc/base64.o 
arc-netbsd-gcc/defaults.o -L../libs/sparc-netbsd-gcc -Wl,-R/opt/pkg/lib -I/opt/p
kg.obj/sysutils/cdrtools/work.ultra10/.buildlink/include -L/opt/pkg.obj/sysutils
/cdrtools/work.ultra10/.buildlink/lib -lrscg -lscg -lparanoia -ldeflt -lschily -
lossaudio -lutil
OBJ/sparc-netbsd-gcc/cdda2wav.o: In function `main':
cdda2wav.c:(.text+0x41a0): undefined reference to `sched_get_priority_min'
cdda2wav.c:(.text+0x41a8): undefined reference to `sched_get_priority_max'
cdda2wav.c:(.text+0x41d0): undefined reference to `sched_setscheduler'

As you can see there is no -lrt passed to gcc, hence it cannot find sched_* 
library calls.

Next I lookd at cdda2wav/Makefile, it has the following line

LIBS=           -lrscg -lscg $(LIB_VOLMGT) -lparanoia -ldeflt -lschily 

So I figure $(LIB_RT) should contain -lrt, but for some reason it's empty.
Next I grep all source files for LIB_RT

# for i in `find . -type f`
> do
> grep 'LIB_RT' $i
> if test $? -eq 0
> then
> echo "^^ $i"
> fi
> done

LIB_RT = @lib_rt@
^^ ./conf/
LIB_RT = -lrt
^^ ./incs/sparc-netbsd-cc/rules.cnf
^^ ./incs/sparc-netbsd-gcc/rules.cnf
LIBS=           -lrscg -lscg $(LIB_VOLMGT) -ledc_ecc -ldeflt -lschily 
^^ ./cdrecord/Makefile
LIBS=           -lrscg -lscg $(LIB_VOLMGT) -lparanoia -ldeflt -lschily 
^^ ./cdda2wav/Makefile

As you can see from above, the file incs/sparc-netbsd-gcc/rules.cnf defines 
LIB_RT, but does not set to anything. Manually setting 'LIB_RT= -lrt' in this 
file fixed the problem.

I don't really know why LIB_RT is not set in incs/sparc-netbsd-gcc/rules.cnf 
file. Can you see where the problem is?

Home | Main Index | Thread Index | Old Index