#27 Compile error on IRIX 6.5

open
None
5
2004-06-15
2004-06-11
Anonymous
No

*** IRIX 6.5.16m, GCC 3.3:

checking term.h usability... no
checking term.h presence... yes
configure: WARNING: term.h: present but cannot be compiled
configure: WARNING: term.h: check for missing
prerequisite headers?
configure: WARNING: term.h: see the Autoconf documentation
configure: WARNING: term.h: section "Present But
Cannot Be Compiled"
configure: WARNING: term.h: proceeding with the
preprocessor's result
configure: WARNING: term.h: in the future, the compiler
will take precedence
configure: WARNING: ##
------------------------------- ##
configure: WARNING: ## Report this to the nget
lists. ##
configure: WARNING: ##
------------------------------- ##
checking for term.h... yes

[...]

g++ -g -O2 -Wall -MMD -MP -DHAVE_CONFIG_H -Iuulib -c
-o texthandler.o texthandler.cc
In file included from texthandler.cc:23:
mylockfile.h: In constructor
`c_lockfile::c_lockfile(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, int)':
mylockfile.h:76: error: no matching function for call
to `flock::flock(int&,
int)'
/usr/include/sys/fcntl.h:145: error: candidates are:
flock::flock()
/usr/include/sys/fcntl.h:145: error:
flock::flock(const flock&)
mylockfile.h: In destructor `c_lockfile::~c_lockfile()':
mylockfile.h:87: error: no matching function for call
to `flock::flock(int&,
int)'
/usr/include/sys/fcntl.h:145: error: candidates are:
flock::flock()
/usr/include/sys/fcntl.h:145: error:
flock::flock(const flock&)
gmake: *** [texthandler.o] Error 1

[...]

*** IRIX 6.5.16m, MIPSPro 7.3.1.2m

[...]

checking sstream usability... no
checking sstream presence... yes
configure: WARNING: sstream: present but cannot be compiled
configure: WARNING: sstream: check for missing
prerequisite headers?
configure: WARNING: sstream: see the Autoconf documentation
configure: WARNING: sstream: section "Present But
Cannot Be Compiled"
configure: WARNING: sstream: proceeding with the
preprocessor's result
configure: WARNING: sstream: in the future, the
compiler will take precedence
configure: WARNING: ##
------------------------------- ##
configure: WARNING: ## Report this to the nget
lists. ##
configure: WARNING: ##
------------------------------- ##
checking for sstream... yes

[...]

checking term.h usability... no
checking term.h presence... yes
configure: WARNING: term.h: present but cannot be compiled
configure: WARNING: term.h: check for missing
prerequisite headers?
configure: WARNING: term.h: see the Autoconf documentation
configure: WARNING: term.h: section "Present But
Cannot Be Compiled"
configure: WARNING: term.h: proceeding with the
preprocessor's result
configure: WARNING: term.h: in the future, the compiler
will take precedence
configure: WARNING: ##
------------------------------- ##
configure: WARNING: ## Report this to the nget
lists. ##
configure: WARNING: ##
------------------------------- ##
checking for term.h... yes

[...]

/usr/bin/cc -g -DHAVE_CONFIG_H -Iuulib -c -o nget.o
nget.cc
cc-3173 cc: ERROR File = _subconf.h, Line = 35
The name must be a namespace name.

using namespace std;
^

cc-3345 cc: ERROR File = argparser.h, Line = 28
"list" is not a template.

typedef list<string> arglist_t;
^

cc-1020 cc: ERROR File = argparser.h, Line = 28
The identifier "string" is undefined.

typedef list<string> arglist_t;
^

cc-1005 cc: ERROR File = nget.cc, Line = 29
The source file "popt.h" is unavailable.

#include <popt.h>
^

3 errors and 1 catastrophic error detected in the
compilation of "nget.cc".
Compilation terminated.
gmake: *** [nget.o] Error 2

Discussion

    • assigned_to: nobody --> donut
     
  • Logged In: YES
    user_id=65253

    term.h thing: try the attached patch and let me know if
    anything changes. (probably some other places would need to
    be changed too, but I want to see first before doing
    anything unnecessary.)

    About flock: does IRIX support the flock function? What is
    the flock that is in /usr/include/sys/fcntl.h:145? Some
    struct/class maybe?

    About mipspro:
    I have no idea why sstream wouldn't work.. maybe check
    config.log for the relevant portion..

    Not sure about the namespace thing, looks like maybe it
    needs the namespace to exist before the using statement is
    given.. I'll attach a possible patch for that too.

     
  • possible fix for term.h thingy.

     
  • possible fix for namespace error

     
  • omg!
    omg!
    2004-06-29

    Logged In: YES
    user_id=1072972

    Hi,

    thanks for the patches.

    I'm using GCC 3.4 now, and also i'm trying Nget 0.27 now.
    The error regarding term.h is still:

    checking term.h usability... no
    checking term.h presence... yes
    configure: WARNING: term.h: present but cannot be compiled
    configure: WARNING: term.h: check for missing
    prerequisite headers?
    configure: WARNING: term.h: see the Autoconf documentation
    configure: WARNING: term.h: section "Present But Cannot
    Be Compiled"
    configure: WARNING: term.h: proceeding with the
    preprocessor's result
    configure: WARNING: term.h: in the future, the compiler will
    take precedence
    configure: WARNING: ## ------------------------------- ##
    configure: WARNING: ## Report this to the nget lists. ##
    configure: WARNING: ## ------------------------------- ##
    checking for term.h... yes

    Yes IRIX has a flock function. Maybe multiple (at least a 32
    and a 64 bit version, but standard it takes the 32 bit
    version) but i'm not sure wether i'm infringing copyright
    when i post that snippet...

    After applying both patches i also get (when using MIPSPro)
    the following during configure:

    checking uudeview.h usability... yes
    checking uudeview.h presence... no
    configure: WARNING: uudeview.h: accepted by the compiler,
    rejected by the preprocessor!
    configure: WARNING: uudeview.h: proceeding with the
    compiler's result
    [...]
    checking size of long... configure: error: cannot compute
    sizeof (long), 77
    See `config.log' for more details.

    (I'll check out the config.log tomorrow for a better
    understanding and/or more info)

     
  • omg!
    omg!
    2004-06-29

    Logged In: YES
    user_id=1072972

    Ah, wait. I have 2 term.h's on my system: one from IRIX
    (Bell Labs), and one from NCurses. The former is probably
    from Curses while the latter is the clone + additions from
    GNU. I assume you're using the latter normally, right? When
    i change my CFLAGS to include the latter (first, before
    /usr/include), i do not get the same error. Woops!

    Please also ignore the earlier comment regarding MIPSPro
    borking during configure. I didn't had my environments straight.

    Both the compilers give me warnings right here:
    c++ -mips4 -O3 -I/opt/include -I/opt/include/ncurses
    -I/usr/include -Wall -MMD -MP -DHAVE_CONFIG_H -c -o
    prot_nntp.o prot_nntp.cc
    In file included from par2/par2cmdline.h:263,
    from par.h:29,
    from prot_nntp.cc:43:
    par2/par2fileformat.h:68: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PACKET_HEADER::length'
    par2/par2fileformat.h:82: warning: ignoring packed attribute
    on unpacked non-POD field `leu32 FILEVERIFICATIONENTRY::crc'
    par2/par2fileformat.h:89: warning: ignoring packed attribute
    on unpacked non-POD field `FILEVERIFICATIONENTRY
    FILEVERIFICATIONPACKET::entries[0u]'
    par2/par2fileformat.h:106: warning: ignoring packed
    attribute on unpacked non-POD field `leu64
    FILEDESCRIPTIONPACKET::length'
    par2/par2fileformat.h:131: warning: ignoring packed
    attribute on unpacked non-POD field `leu64
    MAINPACKET::blocksize'
    par2/par2fileformat.h:132: warning: ignoring packed
    attribute on unpacked non-POD field `leu32
    MAINPACKET::recoverablefilecount'
    par2/par2fileformat.h:133: warning: ignoring packed
    attribute on unpacked non-POD field `MD5Hash
    MAINPACKET::fileid[0u]'
    par2/par2fileformat.h:155: warning: ignoring packed
    attribute on unpacked non-POD field `leu32
    RECOVERYBLOCKPACKET::exponent'
    In file included from par2/par2cmdline.h:284,
    from par.h:29,
    from prot_nntp.cc:43:
    par2/par1fileformat.h:41: warning: ignoring packed attribute
    on unpacked non-POD field `leu32 PAR1FILEHEADER::fileversion'
    par2/par1fileformat.h:42: warning: ignoring packed attribute
    on unpacked non-POD field `leu32 PAR1FILEHEADER::programversion'
    par2/par1fileformat.h:45: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEHEADER::volumenumber'
    par2/par1fileformat.h:46: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEHEADER::numberoffiles'
    par2/par1fileformat.h:47: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEHEADER::filelistoffset'
    par2/par1fileformat.h:48: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEHEADER::filelistsize'
    par2/par1fileformat.h:49: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEHEADER::dataoffset'
    par2/par1fileformat.h:50: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEHEADER::datasize'
    par2/par1fileformat.h:55: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEENTRY::entrysize'
    par2/par1fileformat.h:56: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEENTRY::status'
    par2/par1fileformat.h:57: warning: ignoring packed attribute
    on unpacked non-POD field `leu64 PAR1FILEENTRY::filesize'
    par2/par1fileformat.h:60: warning: ignoring packed attribute
    on unpacked non-POD field `leu16 PAR1FILEENTRY::name[0u]'

    And both still bork here:
    c++ -mips4 -O3 -I/opt/include -I/opt/include/ncurses
    -I/usr/include -Wall -MMD -MP -DHAVE_CONFIG_H -c -o
    sockpool.o sockpool.cc
    In file included from texthandler.cc:23:
    mylockfile.h: In constructor
    `c_lockfile::c_lockfile(std::string, int)':
    mylockfile.h:76: error: no matching function for call to
    `flock::flock(int&, int)'
    /usr/include/sys/fcntl.h:145: note: candidates are:
    flock::flock()
    /usr/include/sys/fcntl.h:145: note:
    flock::flock(const flock&)
    mylockfile.h: In destructor `c_lockfile::~c_lockfile()':
    mylockfile.h:87: error: no matching function for call to
    `flock::flock(int&, int)'
    /usr/include/sys/fcntl.h:145: note: candidates are:
    flock::flock()
    /usr/include/sys/fcntl.h:145: note:
    flock::flock(const flock&)
    gmake: *** [texthandler.o] Error 1
    gmake: *** Waiting for unfinished jobs....

    I'm not getting the namespace error anymore with MIPSPro,
    but i've also changed to a different libpopt, different GCC,
    uulib already compiled in seperate fashion.

    Do you think it is legal to post that part of the header of
    here?

    Thanks for all the help so far.

     
  • omg!
    omg!
    2004-06-29

    Logged In: YES
    user_id=1072972

    Wow... i'm not sure what to say...
    Because i got it compiled... (with GCC 3.4)
    I added "-D_BSD_COMPAT" to CFLAGS.
    After i saw the flock structure i saw it checked for BSD.
    And after i read on freeware.sgi.com for some hints i found
    out this flag.
    Now it works! I still get the warnings at PAR though, i
    haven't tested out with MIPSPro, nor haven't i tried out the
    actual application. Tomorrow another evening :)

    Sorry for all these messages... I hope they'll be useful to
    someone, maybe you could add this in the documentation
    somehow for when someone else wants to port nget to IRIX.

     
  • omg!
    omg!
    2004-06-30

    Logged In: YES
    user_id=1072972

    Hmm. It now compiles with both MIPSPro and GCC. However when
    i run it, Nget segfaults when it tries to connect to a
    Usenet server. This is the case with both versions. Haven't
    got a debugger on this system yet, i'll install that soon.