Re: Buildworld broken with WITHOUT_DYNAMICROOT=yes in src.conf

From: Glen Barber <gjb_at_FreeBSD.org>
Date: Sun, 24 Nov 2013 20:19:49 -0500
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


Received on Mon Nov 25 2013 - 00:19:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:44 UTC