Thread: Segfault on CVS HEAD
I am seeing the following segmentation fault when doing 'gmake install' on CVS HEAD; any idea why? $ gmake install/bin/sh ../config/mkinstalldirs '/usr/local/pgsql/lib/pgxs/src'/bin/sh ../config/install-sh -c -m 644 Makefile.global'/usr/local/pgsql/lib/pgxs/src/Makefile.global'/bin/sh ../config/install-sh -c -m 644 Makefile.port '/usr/local/pgsql/lib/pgxs/src/Makefile.port'/bin/sh../config/install-sh -c -m 644 ./Makefile.shlib '/usr/local/pgsql/lib/pgxs/src/Makefile.shlib'/bin/sh../config/install-sh -c -m 644 ./nls-global.mk '/usr/local/pgsql/lib/pgxs/src/nls-global.mk'gmake-C port installgmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/port'/bin/sh../../config/install-sh -c -m 644 libpgport.a '/usr/local/pgsql/lib/libpgport.a'gmake[1]:Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/port'gmake -Ctimezone installgmake[1]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/timezone'gmake -C ../../src/portallgmake[2]: Entering directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/port'gmake[2]: Nothing to bedone for `all'.gmake[2]: Leaving directory `/usr/var/local/src/gen/pgsql/CURRENT/pgsql/src/port'gmake: *** [install] Segmentationfault$ I rebooted my server but it didn't help. All this just started today. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
Bruce Momjian wrote: > gmake: *** [install] Segmentation fault > $ > > I rebooted my server but it didn't help. All this just started today. Your make is buggy? -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Alvaro Herrera <alvherre@commandprompt.com> writes: > Bruce Momjian wrote: >> gmake: *** [install] Segmentation fault > Your make is buggy? I'm not totally sure, but I think this is make reporting that install crashed. Perhaps a corrupted install executable? regards, tom lane
Tom Lane wrote: > Alvaro Herrera <alvherre@commandprompt.com> writes: > > Bruce Momjian wrote: > >> gmake: *** [install] Segmentation fault > > > Your make is buggy? > > I'm not totally sure, but I think this is make reporting that install > crashed. Perhaps a corrupted install executable? Turns out the cause was a buggy gmake that segment fauled on this: $(if $(ZIC),$(ZIC),./zic) -d ... It affects at least gmake 3.78.1 but is fixed in at least version 3.81. I talked to Peter and it seemed easist to just simplify the gmake rules and document the issue with a comment, attached. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + Index: src/timezone/Makefile =================================================================== RCS file: /cvsroot/pgsql/src/timezone/Makefile,v retrieving revision 1.30 diff -c -c -r1.30 Makefile *** src/timezone/Makefile 5 Jan 2009 10:25:59 -0000 1.30 --- src/timezone/Makefile 6 Jan 2009 02:06:26 -0000 *************** *** 38,49 **** all: submake-libpgport zic endif zic: $(ZICOBJS) $(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X) install: all installdirs ifeq (,$(with_system_tzdata)) ! $(if $(ZIC),$(ZIC),./zic) -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' $(TZDATAFILES) endif $(MAKE) -C tznames $@ --- 38,57 ---- all: submake-libpgport zic endif + # We could do this test in the action section: + # $(if $(ZIC),$(ZIC),./zic) + # but gmake versions <= 3.78.1 or perhaps later have a bug + # that causes a segfault; gmake 3.81 or later fixes this. + ifeq (,$(ZIC)) + ZIC= ./zic + endif + zic: $(ZICOBJS) $(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X) install: all installdirs ifeq (,$(with_system_tzdata)) ! $(ZIC) -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' $(TZDATAFILES) endif $(MAKE) -C tznames $@