Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build stable perl 5.005_03 on Digital Unix 4.0d #1170

Closed
p5pRT opened this issue Feb 11, 2000 · 4 comments
Closed

Can't build stable perl 5.005_03 on Digital Unix 4.0d #1170

p5pRT opened this issue Feb 11, 2000 · 4 comments

Comments

@p5pRT
Copy link

p5pRT commented Feb 11, 2000

Migrated from rt.perl.org#2138 (status was 'resolved')

Searchable as RT2138$

@p5pRT
Copy link
Author

p5pRT commented Feb 11, 2000

From sabol@alderaan.gsfc.nasa.gov

The problem appears to be in the "make depend" stage. I've tried the
following scenarios​:

1. DEC cc and DEC make
2. DEC cc and GNU make 3.76
3. gcc 2.95.2 and GNU make 3.76
4. gcc 2.7.3.2 and GNU make 3.76
5. gcc 2.7.3.2 and GNU make 3.78.1

Nothing worked, and the problem was always identical.

I even tried installing GNU sed 3.0.2 thinking perhaps DEC's sed was broken.

Can someone help?

I accepted nearly all of Configure's defaults. The only things I changed
were libpath and ldflags really. See the myconfig output​:

./myconfig
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration​:
  Platform​:
  osname=dec_osf, osvers=4.0, archname=alpha-dec_osf
  uname='osf1 dbsrv.gsfc.nasa.gov v4.0 878 alpha '
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=undef useperlio=undef d_sfio=undef
  Compiler​:
  cc='gcc', optimize='-O3', gccversion=2.7.2.3
  cppflags='-ansi -DLANGUAGE_C'
  ccflags ='-ansi -DLANGUAGE_C'
  stdchar='unsigned char', d_stdstdio=define, usevfork=false
  intsize=4, longsize=8, ptrsize=8, doublesize=8
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
  alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries​:
  ld='ld', ldflags ='-L/usr/sybase/lib -L/usr/contrib/osf-4.0/lib -L/usr/contrib/osf/lib -L/usr1/local/lib -L/usr/local/lib'
  libpth=/usr/sybase/lib /usr/contrib/osf-4.0/lib /usr/contrib/osf/lib /usr1/local/lib /usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib
  libs=-lgdbm -ldbm -ldb -lm
  libc=/usr/shlib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
  cccdlflags='-fpic', lddlflags='-shared -expect_unresolved "*" -O3 -msym -s -L/usr/sybase/lib -L/usr/contrib/osf-4.0/lib -L/usr/contrib/osf/lib -L/usr1/local/lib -L/usr/local/lib'

I invoked Configure like this​:

sh ./Configure -Uinstallusrbinperl -Dprefix=/usr/contrib/osf-4.0 -Dcc=gcc

The end of the Configure process went like this​:

Now you need to generate make dependencies by running "make depend".
You might prefer to run it in background​: "make depend > makedepend.out &"
It can take a while, so you might not want to run it right now.

Run make depend now? [y]
make​: *** Warning​: File `Makefile' has modification time in the future (2000-02-11 16​:03​:02 > 2000-02-11 16​:02​:49)
sh ./makedepend MAKE=make
make[1]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: *** Warning​: File `Makefile' has modification time in the future (2000-02-11 16​:03​:02 > 2000-02-11 16​:02​:51)
make depend MAKEDEPEND=
make[2]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[2]​: *** Warning​: File `makedepend' has modification time in the future (2000-02-11 16​:03​:04 > 2000-02-11 16​:02​:51)
sh ./makedepend MAKE=make
make[3]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
sh writemain lib/auto/DynaLoader/DynaLoader.a > tmp
sh mv-if-diff tmp perlmain.c
echo malloc.c av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c byterun.c perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c globals.c perlio.c miniperlmain.c perlmain.c | tr ' ' '\n' >.clist
make[3]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
Finding dependencies for malloc.o.
Finding dependencies for av.o.
Finding dependencies for scope.o.
Finding dependencies for op.o.
Finding dependencies for doop.o.
Finding dependencies for doio.o.
Finding dependencies for dump.o.
Finding dependencies for hv.o.
Finding dependencies for mg.o.
Finding dependencies for byterun.o.
Finding dependencies for perl.o.
Finding dependencies for perly.o.
Finding dependencies for pp.o.
Finding dependencies for pp_hot.o.
Finding dependencies for pp_ctl.o.
Finding dependencies for pp_sys.o.
Finding dependencies for regcomp.o.
Finding dependencies for regexec.o.
Finding dependencies for gv.o.
Finding dependencies for sv.o.
Finding dependencies for taint.o.
Finding dependencies for toke.o.
Finding dependencies for util.o.
Finding dependencies for deb.o.
Finding dependencies for run.o.
Finding dependencies for universal.o.
Finding dependencies for globals.o.
Finding dependencies for perlio.o.
Finding dependencies for miniperlmain.o.
Finding dependencies for perlmain.o.
make[3]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
echo Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH makedir.SH perl_exp.SH writemain.SH | tr ' ' '\n' >.shlist
make[3]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
Updating makefile...
test -s perlmain.c && touch perlmain.c
cd x2p; make depend
make[3]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
sh ../makedepend MAKE=make
make[4]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
echo hash.c str.c util.c walk.c | tr ' ' '\n' >.clist
make[4]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
Finding dependencies for hash.o.
Finding dependencies for str.o.
Finding dependencies for util.o.
Finding dependencies for walk.o.
make[4]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist
make[4]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
Updating makefile...
make[3]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
make[2]​: *** Warning​: Clock skew detected. Your build may be incomplete.
make[2]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: *** Warning​: File `makefile' has modification time in the future (2000-02-11 16​:04​:16 > 2000-02-11 16​:04​:02)
sh writemain lib/auto/DynaLoader/DynaLoader.a > tmp
sh mv-if-diff tmp perlmain.c
File perlmain.c not changed.
echo malloc.c av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c byterun.c perl.c
perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c gv.c sv.c taint.c to
ke.c util.c deb.c run.c universal.c globals.c perlio.c miniperlmain.c perlmain.c
| tr ' ' '\n' >.clist
make[1]​: *** Warning​: Clock skew detected. Your build may be incomplete.
make[1]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
Finding dependencies for malloc.o.
./makedepend​: UU/malloc.c.c​: cannot create
./makedepend​: UU/malloc.c.c​: cannot open
Finding dependencies for av.o.
./makedepend​: UU/av.c.c​: cannot create
./makedepend​: UU/av.c.c​: cannot open
Finding dependencies for scope.o.
./makedepend​: UU/scope.c.c​: cannot create
./makedepend​: UU/scope.c.c​: cannot open
Finding dependencies for op.o.
./makedepend​: UU/op.c.c​: cannot create
./makedepend​: UU/op.c.c​: cannot open
Finding dependencies for doop.o.
./makedepend​: UU/doop.c.c​: cannot create
./makedepend​: UU/doop.c.c​: cannot open
Finding dependencies for doio.o.
./makedepend​: UU/doio.c.c​: cannot create
./makedepend​: UU/doio.c.c​: cannot open
Finding dependencies for dump.o.
./makedepend​: UU/dump.c.c​: cannot create
./makedepend​: UU/dump.c.c​: cannot open
Finding dependencies for hv.o.
./makedepend​: UU/hv.c.c​: cannot create
./makedepend​: UU/hv.c.c​: cannot open
Finding dependencies for mg.o.
./makedepend​: UU/mg.c.c​: cannot create
./makedepend​: UU/mg.c.c​: cannot open
Finding dependencies for byterun.o.
./makedepend​: UU/byterun.c.c​: cannot create
./makedepend​: UU/byterun.c.c​: cannot open
Finding dependencies for perl.o.
./makedepend​: UU/perl.c.c​: cannot create
./makedepend​: UU/perl.c.c​: cannot open
Finding dependencies for perly.o.
./makedepend​: UU/perly.c.c​: cannot create
./makedepend​: UU/perly.c.c​: cannot open
Finding dependencies for pp.o.
./makedepend​: UU/pp.c.c​: cannot create
./makedepend​: UU/pp.c.c​: cannot open
Finding dependencies for pp_hot.o.
./makedepend​: UU/pp_hot.c.c​: cannot create
./makedepend​: UU/pp_hot.c.c​: cannot open
Finding dependencies for pp_ctl.o.
./makedepend​: UU/pp_ctl.c.c​: cannot create
./makedepend​: UU/pp_ctl.c.c​: cannot open
Finding dependencies for pp_sys.o.
./makedepend​: UU/pp_sys.c.c​: cannot create
./makedepend​: UU/pp_sys.c.c​: cannot open
Finding dependencies for regcomp.o.
./makedepend​: UU/regcomp.c.c​: cannot create
./makedepend​: UU/regcomp.c.c​: cannot open
Finding dependencies for regexec.o.
./makedepend​: UU/regexec.c.c​: cannot create
./makedepend​: UU/regexec.c.c​: cannot open
Finding dependencies for gv.o.
./makedepend​: UU/gv.c.c​: cannot create
./makedepend​: UU/gv.c.c​: cannot open
Finding dependencies for sv.o.
./makedepend​: UU/sv.c.c​: cannot create
./makedepend​: UU/sv.c.c​: cannot open
Finding dependencies for taint.o.
./makedepend​: UU/taint.c.c​: cannot create
./makedepend​: UU/taint.c.c​: cannot open
-L/usr/sybase/lib -L/usr/contrib/osf-4.0/lib -L/usr/contrib/osf/lib -L/usr1/loca
l/lib -L/usr/local/libFinding dependencies for toke.o.
./makedepend​: UU/toke.c.c​: cannot create
./makedepend​: UU/toke.c.c​: cannot open
Finding dependencies for util.o.
./makedepend​: UU/util.c.c​: cannot create
./makedepend​: UU/util.c.c​: cannot open
Finding dependencies for deb.o.
./makedepend​: UU/deb.c.c​: cannot create
./makedepend​: UU/deb.c.c​: cannot open
Finding dependencies for run.o.
./makedepend​: UU/run.c.c​: cannot create
./makedepend​: UU/run.c.c​: cannot open
Finding dependencies for universal.o.
./makedepend​: UU/universal.c.c​: cannot create
./makedepend​: UU/universal.c.c​: cannot open
Finding dependencies for globals.o.
./makedepend​: UU/globals.c.c​: cannot create
./makedepend​: UU/globals.c.c​: cannot open
Finding dependencies for perlio.o.
./makedepend​: UU/perlio.c.c​: cannot create
./makedepend​: UU/perlio.c.c​: cannot open
Finding dependencies for miniperlmain.o.
./makedepend​: UU/miniperlmain.c.c​: cannot create
./makedepend​: UU/miniperlmain.c.c​: cannot open
Finding dependencies for perlmain.o.
./makedepend​: UU/perlmain.c.c​: cannot create
./makedepend​: UU/perlmain.c.c​: cannot open
make[1]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: *** Warning​: File `makefile' has modification time in the future (2000-
02-11 16​:04​:16 > 2000-02-11 16​:04​:07)
echo Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH makedir.SH per
l_exp.SH writemain.SH | tr ' ' '\n' >.shlist
make[1]​: *** Warning​: Clock skew detected. Your build may be incomplete.
make[1]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03'
make[1]​: *** Warning​: File `makefile' has modification time in the future (2000-
02-11 16​:04​:16 > 2000-02-11 16​:04​:08)
echo EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h embed.h form.h g
v.h handy.h hv.h keywords.h mg.h op.h opcode.h patchlevel.h perl.h perly.h pp.h
proto.h regcomp.h regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h byt
ecode.h byterun.h | tr ' ' '\n' >.hlist
make[1]​: *** Warning​: Clock skew detected. Your build may be incomplete.
make[1]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03'
You don't seem to have a proper C preprocessor. Using grep instead.
Updating makefile...
test -s perlmain.c && touch perlmain.c
cd x2p; make depend
make[1]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
make[1]​: *** Warning​: File `makefile' has modification time in the future (2000-
02-11 16​:04​:21 > 2000-02-11 16​:04​:09)
sh ../makedepend MAKE=make
make[2]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
echo hash.c str.c util.c walk.c | tr ' ' '\n' >.clist
make[2]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
Finding dependencies for hash.o.
Finding dependencies for str.o.
Finding dependencies for util.o.
Finding dependencies for walk.o.
make[2]​: Entering directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist
make[2]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
Updating makefile...
make[1]​: *** Warning​: Clock skew detected. Your build may be incomplete.
make[1]​: Leaving directory `/Software/usr/contrib/src/perl/perl5.005_03/x2p'
make​: *** Warning​: Clock skew detected. Your build may be incomplete.
Now you must run a make.

If you compile perl5 on a different machine or from a different object
directory, copy the Policy.sh file from this object directory to the
new one before you run Configure -- this will help you with most of
the policy defaults.

make
Make​: makefile, line 602​: syntax error. Stop.

Line 602 of the makefile says​:

config.h​: Bletch​: How does this C preprocessor catenate tokens?

If I delete this line from the makefile and run make again...

make
`sh cflags libperl.a miniperlmain.o` miniperlmain.c
  CCCMD = gcc -DPERL_CORE -c -ansi -DLANGUAGE_C -O3
Make​: Don't know how to make perlCAPI.h. Stop.

@p5pRT
Copy link
Author

p5pRT commented Feb 11, 2000

From [Unknown Contact. See original ticket]

Edward-

The warning messages you included regarding file modification times
imply that your NFS client is out of sync with your NFS server -- file
modification times are written from the NFS servers POV, while the
make process uses the system time of the NFS client.

I cannot see where your particular error came from -- but your build
process may have been compromised by the time skew. I suggest you
ask your friendly sysadmin to fix the time skew. ntp, rdate, whatever.

: *** Warning​: File `Makefile' has modification time\
  in the future (2000-02-11 16​:03​:02 > 2000-02-11 16​:02​:49)


Quentin Fennessy Quentin.Fennessy@​amd.com
  Voice​: 512.602.3873
  Pager​: 512.622.6316

@p5pRT
Copy link
Author

p5pRT commented Feb 14, 2000

From [Unknown Contact. See original ticket]

The warning messages you included regarding file modification times imply
that your NFS client is out of sync with your NFS server -- file
modification times are written from the NFS servers POV, while the make
process uses the system time of the NFS client.

I cannot see where your particular error came from -- but your build
process may have been compromised by the time skew. I suggest you
ask your friendly sysadmin to fix the time skew. ntp, rdate,
whatever.

*** Warning​: File `Makefile' has modification time\ in the future
(2000-02-11 16​:03​:02 > 2000-02-11 16​:02​:49)

Well, you were right. I rebuilt everything on a local device, and it worked
fine. Frankly, I'm surprised by this. I've built a lot of complicated
packages in my day, and this is the first one I've come across where an NFS
time skew actually caused the build to fail. I can usually just ignore those
modification-time-in-the-future warnings.

Thanks,
Ed

@p5pRT
Copy link
Author

p5pRT commented Feb 14, 2000

From [Unknown Contact. See original ticket]

%% "Edward J. Sabol" <sabol@​alderaan.gsfc.nasa.gov> writes​:

  ejs> Well, you were right. I rebuilt everything on a local device, and
  ejs> it worked fine. Frankly, I'm surprised by this. I've built a lot
  ejs> of complicated packages in my day, and this is the first one I've
  ejs> come across where an NFS time skew actually caused the build to
  ejs> fail. I can usually just ignore those
  ejs> modification-time-in-the-future warnings.

What, you think we just added the warnings to encourage conversation? :)

Actually that GNU feature was added to GNU make because builds _were_
failing, in obscure and non-obvious ways, and people supporting GNU
tools were wasting a lot of time trying to figure out the problems.

Unfortunately, the algorithm GNU make uses to detect timestamp skew is
too aggressive and results in too many false positives, so lots of times
people ignore them anyway. Given the architecture of GNU make it's
tricky to come up with a more precise check that still covers all the
problem areas. And even more tricky to come up with the time to
implement it ;).

But at least this way it's much easier to tell if this _might_ be the
problem.

--


Paul D. Smith <psmith@​baynetworks.com> Network Management Development
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist


  These are my opinions---Nortel Networks takes no responsibility for them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant