develooper Front page | perl.perl5.porters | Postings from November 2001

Re: [ID 20011108.093] pp_sys.c:1580: incompatible type for argument5 of `recvfrom'

Thread Previous | Thread Next
From:
Alexander Klimov
Date:
November 9, 2001 05:19
Subject:
Re: [ID 20011108.093] pp_sys.c:1580: incompatible type for argument5 of `recvfrom'
Message ID:
TheMailAgent.1cba091a8424400-100000@3ff3e674bd9dff17b83ab
On Thu, 8 Nov 2001, Andy Dougherty wrote:
> Hmm.  It's very hard to guess what's going on here.  Certainly perl.h
> should be including <sys/types.h> and <sys/socket.h>.  Could you verify
> that they are getting included there?
Yes, them are there.

> Hmm.  A wild guess:  In perl.h, could you try moving the <netinet/in.h>
> and <arpa/inet.h> includes to below the <sys/socket.h> include?
No improovements.

> Finally, could you please send along the output of the ./myconfig script?
> I'm afraid I don't know anywhere near enough about RedHat products to
> guess which libc and kernel you are using.
The investigation shows more details. I have 2 gcc:
gcc version 3.1 20011031 (experimental)
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)

`sh Configure -des -Dusedevel && make' works OK with 2.96, but
not with 3.1.

myconfig for 3.1 gives:
Summary of my perl5 (revision 5.0 version 7 subversion 2 patch 12910) configuration:
  Platform:
    osname=linux, osvers=2.4.2-2, archname=i686-linux
    uname='linux verdi.wisdom.weizmann.ac.il 2.4.2-2 #1 sun apr 8 20:41:30 edt 2001 i686 unknown '
    config_args='-des -Dusedevel'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=define
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='3.1 20011031 (experimental)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldl -lm -lc -lcrypt -lutil
    perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
    libc=/lib/libc-2.2.2.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'

I compare two versions, and the most notable difference is
*** bleadperl.296/config.h      Fri Nov  9 14:31:45 2001
--- bleadperl/config.h  Fri Nov  9 14:32:37 2001
***************
*** 39 ****
! #define HASATTRIBUTE  /**/
--- 39 ----
! /*#define HASATTRIBUTE        / **/

In other words perl think that gcc 3.1 couldn't check for function
attributes, but 2.96 could. After I uncoment it everything is compiled OK
with 3.1 (98.97% tests passed)

Now I think I know the real reason: program for testing attributes support
which is compiled in Configure:8716

cc -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -c attrib.c

raise warnings

cc1: warning: changing search order for system directory
"/usr/local/include"
cc1: warning:   as it has already been specified as a non-system directory

and so Configure thinks "Your C compiler doesn't fully support
__attribute__."

Regards,
ASK





Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About