[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question on Tru64 compiler options
From: |
Ralf Wildenhues |
Subject: |
Re: Question on Tru64 compiler options |
Date: |
Tue, 11 Aug 2009 20:01:26 +0200 |
User-agent: |
Mutt/1.5.20 (2009-08-09) |
Hello Paul,
* Paul Smith wrote on Tue, Aug 11, 2009 at 03:06:39PM CEST:
> > Hi all; I have a bug filed with GNU make that says:
> >
> > Building GNU Make on Tru64 requires
> >
> > CPPFLAGS = -D_XOPEN_SOURCE_EXTENDED -D_OSF_SOURCE
> >
> > _XOPEN* is needed to get the prototype for bsd_signal(), and
> > _OSF* to typedef u_long and friends, which is used in some
> > system headers pulled in by getloadavg.c (and without said
> > typedefs, the build breaks when compiling that file). I've
> > confirmed that neither of these flags is made redundant by the
> > other.
> >
> > Please make a note of this in the documentation, or add
> > appropriate logic to the configure script. I was able to
> > determine the need for these flags, but other users might not.
> >
> > Of these options of course I'd prefer to do something in autoconf that
> > would do this automatically. Does anyone have any ideas on this, short
> > of checking the host/os explicitly?
> >
> > I already have an AC_CHECK_FUNCS() for bsd_signal but I guess this isn't
> > good enough to get the prototype?
> >
> > I'm not sure what the deal is with u_long; I certainly don't use it
> > myself so I can only assume there's an error in the Tru64 headers that
> > needs to be worked around somehow...?
> Anyone have any thoughts on this?
Not really. Recent Autoconf has AC_USE_SYSTEM_EXTENSIONS which helps to
enable all those extensions that ought to be unproblematic to have in
parallel, but I don't think _OSF_SOURCE fits that category, and
_XOPEN_SOURCE_EXTENDED probably doesn't either.
Other than that, I've just successfully built the CVS version of GNU
make on Tru64 5.1, with a plain "configure -C", seeing a few warnings of
this kind but no other issues:
source='../make/main.c' object='main.o' libtool=no DEPDIR=.deps
depmode=tru64 /bin/ksh ../make/config/depcomp cc
-DLOCALEDIR=\"/home/rwild/local/alphaev67-dec-osf5.1/share/locale\"
-DLIBDIR=\"/home/rwild/local/alphaev67-dec-osf5.1/lib\"
-DINCLUDEDIR=\"/home/rwild/local/alphaev67-dec-osf5.1/include\" -DHAVE_CONFIG_H
-I. -I../make -I../make/glob -g -c ../make/main.c
cc: Warning: ../make/main.c, line 987: In this statement, "bsd_signal(...)"
of type "int", is being converted to "pointer to function (int) returning
void". (cvtdiftypes)
FATAL_SIG (SIGHUP);
--^
The test suite passes, except for those tests that fail due to missing
Cwd.pm in the Perl installation, for example:
*** Test died (features/patternrules): Can't locate Cwd.pm in @INC (@INC
contains: /usr/lib/perl-5.005/lib/5.00503/alpha-dec_osf
/usr/lib/perl-5.005/lib/5.00503
/usr/lib/perl-5.005/lib/site_perl/5.005/alpha-dec_osf
/usr/lib/perl-5.005/lib/site_perl/5.005 .) at scripts/features/patternrules
line 7.
BEGIN failed--compilation aborted at scripts/features/patternrules line 7.
Tru64 4.0D gives a similar experience, but completely passes with the
working Perl installation I used there.
Of course, I did have to remove the @MAINT_MAKEFILE@ line from
Makefile.in before the vendor make would accept the Makefile. :-)
Cheers,
Ralf