automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: depcomp on system headers


From: David Everly
Subject: Re: depcomp on system headers
Date: Tue, 8 Aug 2006 14:43:57 -0600

While I was writing this email I received this one from HP:

"Well, I got a response from the lab, but not the one I was hoping for.
 They took your test suite and said that they can dup the problem with
A.06.06, but when they tested with the latest version of the compiler
(A.06.10) they couldn't dup."

So I guess we will have to try upgrading our compiler.

On 8/8/06, David Everly <address@hidden> wrote:
Here I try to answer all the questions.  Please let me know if I missed any.

On 8/8/06, Ralf Wildenhues <address@hidden> wrote:
> * David Everly wrote on Tue, Aug 08, 2006 at 12:56:12AM CEST:
> >
> > I think my problem happens because what our vendor does is #include
> > <rw/numbrw.cc> inside of rw/numbrw
>
> Yes, I see that too with the compiler version I'm looking at.

> For me, the source file
>   #include <locale>
>   int main() { return 0; }
>
> causes absolute file name like
>   /opt/aCC/include_std/rw/numbrw:
>   /opt/aCC/include_std/rw/numbrw.cc:

I have been plagued by my own inaccuracies here.  I'm including the
file generated by the output below from compiling ne.cxx to avoid
repeating my mistakes.

> in .deps/foo.Po, not relative ones like you report.  Please output the
> exact compile command that is used for this object.  Mine looks like:
>
> source='../foo.cc' object='foo.o' libtool=no \
> DEPDIR=.deps depmode=hp2 /usr/bin/posix/sh ../depcomp \
> aCC -DPACKAGE_NAME=\"a\" -DPACKAGE_TARNAME=\"a\" -DPACKAGE_VERSION=\"1\"
> -DPACKAGE_STRING=\"a\ 1\" -DPACKAGE_BUGREPORT=\"b\" -DPACKAGE=\"a\"
> -DVERSION=\"1\" -I. -I..     -g -c -o foo.o ../foo.cc

source='tl1_am/src/ne.cxx' object='tl1_am/src/ne_sim-ne.o' libtool=no \
DEPDIR=.deps depmode=hp2 /bin/sh ./depcomp \
aCC +DD64 -Wl,+k -DHAVE_CONFIG_H -I. -I. -I.  -D_THREAD_SAFE
-DTL1overOSI -D_POSIX_C_SOURCE=199506L -I./tl1_am/src
-I/usr/opt/temip/CMA/include  -mt +DD64 +z -AA -g -c -o
tl1_am/src/ne_sim-ne.o `test -f 'tl1_am/src/ne.cxx' || echo
'./'`tl1_am/src/ne.cxx

> (this is with CVS Automake as of some weeks ago; which versions of
> Autoconf and Automake do you use BTW?

autoconf 2.59 and
automake 1.9.6 with depcomp 2006-07-09.11

> hp2 was not in 1.9.6 yet, and
> +Maked was not used there anywhere, please also print the scriptversion
> of depcomp).
>
> Please also show the output of your command that corresponds to above,
> with -x added after the shell in use (/usr/bin/posix/sh in the case
> above, but please use whatever configure chose for you).

  source='tl1_am/src/ne.cxx' object='tl1_am/src/ne_sim-ne.o'
libtool=no DEPDIR=.deps depmode=hp2 /bin/sh -x ./depcomp aCC +DD64
-Wl,+k -DHAVE_CONFIG_H -I. -I. -I.  -D_THREAD_SAFE -DTL1overOSI
-D_POSIX_C_SOURCE=199506L -I./tl1_am/src -I/usr/opt/temip/CMA/include
-mt +DD64 +z -AA -g -c -o tl1_am/src/ne_sim-ne.o `test -f
'tl1_am/src/ne.cxx' || echo './'`tl1_am/src/ne.cxx
+ scriptversion=2006-07-09.11
+ test -z hp2
+ test -z tl1_am/src/ne.cxx
+ test -z tl1_am/src/ne_sim-ne.o
+ + echo tl1_am/src/ne_sim-ne.o
+ sed s|[^\/]*$|.deps/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|
depfile=tl1_am/src/.deps/ne_sim-ne.Po
+ + echo tl1_am/src/.deps/ne_sim-ne.Po
+ sed s/\.\([^.]*\)$/.T\1/
tmpdepfile=tl1_am/src/.deps/ne_sim-ne.TPo
+ rm -f tl1_am/src/.deps/ne_sim-ne.TPo
+ test hp2 = hp
+ test hp2 = dashXmstdout
+ + echo tl1_am/src/ne_sim-ne.o
+ sed -e s|/[^/]*$|/|
dir=tl1_am/src/
+ test xtl1_am/src/ = xtl1_am/src/ne_sim-ne.o
+ + echo tl1_am/src/ne_sim-ne.o
+ sed -e s|^.*/|| -e s/\.o$// -e s/\.lo$//
base=ne_sim-ne
+ test no = yes
+ tmpdepfile1=tl1_am/src/ne_sim-ne.d
+ tmpdepfile2=tl1_am/src/ne_sim-ne.d
+ aCC +DD64 -Wl,+k -DHAVE_CONFIG_H -I. -I. -I. -D_THREAD_SAFE
-DTL1overOSI -D_POSIX_C_SOURCE=199506L -I./tl1_am/src
-I/usr/opt/temip/CMA/include -mt +DD64 +z -AA -g -c -o
tl1_am/src/ne_sim-ne.o tl1_am/src/ne.cxx +Maked
+ stat=0
+ test 0 -eq 0
+ :
+ test -f tl1_am/src/ne_sim-ne.d
+ break
+ test -f tl1_am/src/ne_sim-ne.d
+ sed -e s,^.*\.[a-z]*:,tl1_am/src/ne_sim-ne.o:, tl1_am/src/ne_sim-ne.d
+ 1> tl1_am/src/.deps/ne_sim-ne.Po
+ sed -ne 2,${; s/^ *//; s/ \\*$//; s/$/:/; p;} tl1_am/src/ne_sim-ne.d
+ 1>> tl1_am/src/.deps/ne_sim-ne.Po
+ rm -f tl1_am/src/ne_sim-ne.d tl1_am/src/ne_sim-ne.d
+ exit 0

I'm also attaching demo.tar which illustrates my troubles using only
HP make and HP aCC.  HP support has confirmed to me that they are able
to duplicate my results.

I believe this is all a function of two things:

1.  date of x is less than date of x.cc (where x is any include you
wish to examine, such as
/opt/aCC/include_std/rw/numbrw)

2.  Internal single suffix inference rules within either GNU or HP make

From HP man make:
      Single suffix inference rules (.c) define how to build x from x.c.  In
      effect, the first suffix is null.  Single suffix rules are useful for
      building targets from only one source file; e.g., shell procedures and
      simple C programs.

--
ASCII ribbon campaign:
()  against HTML email
/\  against Microsoft attachments
    Information:  http://www.expita.com/nomime.html





--
ASCII ribbon campaign:
()  against HTML email
/\  against Microsoft attachments
   Information:  http://www.expita.com/nomime.html




reply via email to

[Prev in Thread] Current Thread [Next in Thread]