Buildworld broken with WITHOUT_DYNAMICROOT=yes in src.conf

Glen Barber gjb at FreeBSD.org
Mon Nov 25 01:19:54 UTC 2013


On Sun, Nov 24, 2013 at 05:11:51PM -0800, Manfred Antar wrote:
> Since the changes to libc in the last few weeks.
> building world fails in /bin/csh
> 
> cc -O2 -pipe  -I. -I/usr/src/bin/csh -I/usr/src/bin/csh/../../contrib/tcsh -D_PATH_TCSHELL='"/bin/csh"' -DHAVE_ICONV -std=gnu99 -Qunused-arguments -fstack-protector -Wsystem-headers -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-conversion -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses  -static -o csh sh.o sh.dir.o sh.dol.o sh.err.o sh.exec.o sh.char.o sh.exp.o sh.file.o sh.func.o sh.glob.o sh.hist.o sh.init.o sh.lex.o sh.misc.o sh.parse.o sh.print.o sh.proc.o sh.sem.o sh.set.o sh.time.o glob.o mi.termios.o tw.help.o tw.init.o tw.parse.o tw.spell.o tw.comp.o tw.color.o ed.chared.o ed.defns.o ed.init.o ed.inputl.o ed.refresh.o ed.screen.o ed.xmap.o ed.term.o tc.alloc.o tc.bind.o tc.const.o tc.disc.o tc.func.o tc.nls.o tc.os.o tc.printf.o tc.prompt.o tc.sched.o tc.sig.o tc.str.o tc.vers.o tc.who.o tc.defs.o -ltermcap -lcrypt
> sh.func.o: In function `nlsclose':
> /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:(.text+0x2753): undefined reference to `iconv_close'
> sh.func.o: In function `nlsinit':
> /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:(.text+0x2874): undefined reference to `iconv_open'
> sh.func.o: In function `iconv_catgets':
> /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:(.text+0x3f9a): undefined reference to `iconv'
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> *** Error code 1
> 
> If I add -lc_nonshared to the LADD= line it builds fine 
> 
> cc -O2 -pipe  -I. -I/usr/src/bin/csh -I/usr/src/bin/csh/../../contrib/tcsh -D_PATH_TCSHELL='"/bin/csh"' -DHAVE_ICONV -std=gnu99 -Qunused-arguments -fstack-protector -Wsystem-headers -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-conversion -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses  -static -o csh sh.o sh.dir.o sh.dol.o sh.err.o sh.exec.o sh.char.o sh.exp.o sh.file.o sh.func.o sh.glob.o sh.hist.o sh.init.o sh.lex.o sh.misc.o sh.parse.o sh.print.o sh.proc.o sh.sem.o sh.set.o sh.time.o glob.o mi.termios.o tw.help.o tw.init.o tw.parse.o tw.spell.o tw.comp.o tw.color.o ed.chared.o ed.defns.o ed.init.o ed.inputl.o ed.refresh.o ed.screen.o ed.xmap.o ed.term.o tc.alloc.o tc.bind.o tc.const.o tc.disc.o tc.func.o tc.nls.o tc.os.o tc.printf.o tc.prompt.o tc.sched.o tc.sig.o tc.str.o tc.vers.o tc.who.o tc.defs.o -ltermcap -lcrypt -lc_nonshared
> 
> Not sure what rule to use.
> I don't know how many people use WITHOUT_DYNAMICROOT
> I like it though.
> Manfred
> 

I think WITHOUT_DYNAMICROOT=1 has nothing to do with this.  I worked
around it by setting WITHOUT_NLS_CATALOGS=1 (see src.conf(5)).

The relevant parts of the contrib/tcsh/sh.func.c are:

2578 # if defined(HAVE_ICONV) && defined(HAVE_NL_LANGINFO)
2579 char *
2580 iconv_catgets(nl_catd ctd, int set_id, int msg_id, const char *s)
2581 {
2582     static char *buf = NULL;
2583     static size_t buf_size = 0;

Glen

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20131124/31a01f68/attachment.sig>


More information about the freebsd-current mailing list