1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

how to recover from missing headers in /usr/include ?

Discussion in 'Installing and Upgrading FreeBSD' started by mecano, Jul 21, 2009.

  1. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    Hello,
    having troubles with some port builds (x11vnc as example, package build runs fine) after upgrading from FressBSD 6.4 to 7.2 (both RELEASE) producing segmentation fault 11 on launch (they build fine, looks like a thread problem, pthread maybe related), I did clean old headers in /usr/include with a
    Code:
    find /usr/include/ -mtime +60 | xargs rm -r
    

    then did a
    Code:
    portupgrade -af
    

    I then added missing headers by hand from /usr/src/sys/ (/usr/src/sys/i386/include/ and /usr/src/sys/sys/ when errors popped out. After 3 successfully recover (copying header files from /usr/src/sys/ to /usr/include), I thought that I just could copy all files and did a global copy.
    Code:
    cp /usr/src/sys/sys/* /usr/include/
    cp /usr/src/sys/i386/* /usr/include/
    

    but graphics/libglut still does not want to compile chocking on wchar.h
    Code:
    /usr/local/include/X11/Xlib.h:1123: error: expected specifier-qualifier-list before 'wchar_t'
    /usr/local/include/X11/Xlib.h:1282: error: expected specifier-qualifier-list before 'wchar_t'
    /usr/local/include/X11/Xlib.h:1316: error: expected specifier-qualifier-list before 'wchar_t'
    /usr/local/include/X11/Xlib.h:3678: warning: type defaults to 'int' in declaration of 'wchar_t'
    /usr/local/include/X11/Xlib.h:3678: error: expected ';', ',' or ')' before '*' token
    

    So I guess, it doesn't like the wchar.h I just put in, then I noticed there is a Makefile in /usr/src/include so I 'cd' to it and did a
    Code:
    make install
    

    now libglut is passing the previous error, but… my /usr/include/ should be pretty messy, is there a simple way to recover from this ?

    note :
    I did add my CPUTYPE in make.conf after the 7.2 upgrade (it was not set previously), rebuilt the kernel and all ports.
     
  2. DutchDaemon

    DutchDaemon Administrator Staff Member Administrator Moderator

    Messages:
    10,721
    Thanks Received:
    2,137
    Did you run all the necessary steps after updating the OS, so including make delete-old, mergemaster, and make delete-old-libs? Sounds like you've compiled stuff against older libs, or mixed old and new libs, confusing applications.
     
  3. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    Yes indeed it looks like, I followed the process from the handbook starting at 24.2.3. After finding out troubles, I did a make delete-olds but no mergemaster, I thought freebsd-update did it because it asked me several times about diff conf files I had to edit/validate by hand.
    Maybe I should have been more carefully reading the handbook previous 24.2.3…
    What about forcing a system update (just as one can do with ports with portupgrade -f), is it possible ?
     
  4. DutchDaemon

    DutchDaemon Administrator Staff Member Administrator Moderator

    Messages:
    10,721
    Thanks Received:
    2,137
    I didn't realise you used freebsd-update. I was referring to the source-based upgrade procedure. I'll leave it to someone more versed in freebsd-update to come up with a possible fix. In the meantime you could use the procedure in 24.2.4 to see how 'off' your current installation currently is.
     
  5. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    thanks DutchDaemon and sorry I didn't specify I used freebsd-update, I'll try to be more verbose next time. Going to check 24.2.4, thanks again.
     
  6. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    nothing fancy with freebsd-update ids output… just five headers, some known conf files and the whole ssh crew… I guess, I'd better cvsup source tree (and previously edit my supfile for sources to match RELENG_7_2) and rebuild world (as in 24.6), then kernel, etc.
    This should do the job doesn't it ?
     
  7. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    after cvsup on sources, I now get this while 'make buildworld'

    Code:
    cc -c -I /usr/src/gnu/usr.bin/cc/cc_tools/../libiberty -O2 -fno-strict-aliasing -pipe -I. -DIN_GCC -DHAVE_CONFIG_H \
    -DPREFIX=\"/usr\" -I/usr/obj/usr/src/gnu/usr.bin/cc/cc_tools/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_tools/../cc_tools \
    -I/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcc -I/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcc/config \
    -I/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/include \
    -I/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libcpp/include \
    -I/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libdecnumber -g -DGENERATOR_FILE -DHAVE_CONFIG_H  \
    -I/usr/obj/usr/src/tmp/legacy/usr/include -o safe-ctype.o
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:161: \
    error: '_sch_isnvsp' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:161: \
    error: '_sch_iscntrl' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:162: \
    error: '_sch_isspace' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:162: \
    error: '_sch_isblank' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:162: \
    error: '_sch_isvsp' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:165: \
    error: '_sch_isprint' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:165: \
    error: '_sch_ispunct' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:167: \
    error: '_sch_isdigit' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:167: \
    error: '_sch_isxdigit' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:169: \
    error: '_sch_isupper' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:169: \
    error: '_sch_isidst' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty/safe-ctype.c:173: \
    error: '_sch_islower' undeclared here (not in a function)
    *** Error code 1
    


    I read several people experiencing the same in freebsd current list (http://www.mailinglistarchive.com/freebsd-current@freebsd.org/msg10161.html). I'm a bit clueless here, any hint? I suspect some faulty previous update (6.2<6.4) on my side.
    I tried running cvsup again, make clean in /usr/src…
     
  8. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    Maybe the safe-ctype.h in /usr/src/gnu/usr.bin/cc/cc_tools/ is faulty?
    I made a
    Code:
    diff /usr/src/contrib/binutils/include/safe-ctype.h /usr/src/gnu/usr.bin/cc/cc_tools/safe-ctype.h > safe1.diff
    


    and indeed /usr/src/gnu/usr.bin/cc/cc_tools/safe-ctype.h seems to lack some definitions.
    outputs : http://pastebin.com/m58c734ad

    here is my cvsupfile for info :
    Code:
    *default host=cvsup3.fr.FreeBSD.org
    *default base=/var/db
    *default prefix=/usr
    *default release=cvs tag=RELENG_7_2
    *default delete use-rel-suffix
    
    src-all
    


    (I removed compress option on second attempt, all attempts reported successfull)
     
  9. DutchDaemon

    DutchDaemon Administrator Staff Member Administrator Moderator

    Messages:
    10,721
    Thanks Received:
    2,137
    After a c(v)sup, make sure to remove /usr/obj before trying a new build.

    Code:
    rm -rf /usr/obj && cd /usr/src && make cleandir


    should give you a clean build environment.
     
    mecano thanks for this.
  10. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    and here is my /etc/make.conf
    Code:
    CPUTYPE?=athlon-tbird
    CFLAGS= -O2 -fno-strict-aliasing -pipe 
    CXXFLAGS+= -fconserve-space
    MAKE_SHELL?=sh
    COPTFLAGS= -O -pipe
    MTREE_FOLLOWS_SYMLINKS= -L
    
    PRINTERDEVICE= ascii
    BOOTWAIT=0
    DOC_LANG=       en_US.ISO8859-1
    
    
    PPP_NO_NAT=true         # do not build with NAT support (see make.conf(5))
    PPP_NO_NETGRAPH=true    # do not build with Netgraph support
    PPP_NO_RADIUS=true      # do not build with RADIUS support
    PPP_NO_SUID=true
    
    # added by use.perl 2009-07-21 13:16:33
    PERL_VERSION=5.10.0
    
     
  11. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    thanks will try it right now !
     
  12. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    ahah ! now it stops at
    Code:
    /usr/src/gnu/usr.bin/cc/cc_int/insn-modes.c:311: error: 'V1DImode' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_int/insn-modes.c:318: error: 'V8DImode' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_int/insn-modes.c:324: error: 'V16SFmode' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_int/insn-modes.c:325: error: 'V8DFmode' undeclared here (not in a function)
    /usr/src/gnu/usr.bin/cc/cc_int/insn-modes.c:508: error: conflicting types for 'real_format_for_mode'
    /usr/src/gnu/usr.bin/cc/cc_int/../../../../contrib/gcc/real.h:165: error: previous declaration of 'real_format_for_mode' was here
    *** Error code 1
    
     
  13. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    V* machmode.def defs are missing from /usr/obj/usr/src/gnu/usr.bin/cc/cc_tools/insn-modes.h, only V* config/i386/i386-modes.def defs are in.
    Could it be, somewhere something is not catching the CPUTYPE?=athlon-tbird and stick to i386 only? So /usr/obj/usr/src/gnu/usr.bin/cc/cc_tools/insn-modes.h was created without taking CPUTYPE in account while building cc is picking it hence the error?
    Or is it that the CPU is not a thunderbird? I'll have a look with cpuid!
     
  14. mecano

    mecano Member

    Messages:
    127
    Thanks Received:
    7
    OMG! I got a Palomino (ok a A4 one but still)! Yepee! cpuid rulez!
    Sorry for the noise folks and remember kids:
    "Always check with cpuid before putting anything as CPUTYPE in /etc/make.conf"