Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 2002 18:49:56 +0300
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        re@FreeBSD.org, stable@FreeBSD.org
Subject:   Status of upgrades from 4.0 to the recent 4.x (was: Re: cvs commit: src/usr.bin/make Makefile compat.c job.c main.c pathnames.h)
Message-ID:  <20020522154956.GC55670@sunbay.com>
In-Reply-To: <200205221453.g4MErIa44225@freefall.freebsd.org>
References:  <200205221453.g4MErIa44225@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--7gGkHNMELEOhSGF6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, May 22, 2002 at 07:53:18AM -0700, Ruslan Ermilov wrote:
> ru          2002/05/22 07:53:18 PDT
>=20
>   Modified files:
>     usr.bin/make         Makefile compat.c job.c main.c=20
>                          pathnames.h=20
>   Log:
>   Do not run shell from /bin, run it from $PATH.
>   Bump MAKE_VERSION to 5200205221.
>  =20
>   Revision  Changes    Path
>   1.23      +1 -1      src/usr.bin/make/Makefile
>   1.27      +11 -3     src/usr.bin/make/compat.c
>   1.35      +5 -1      src/usr.bin/make/job.c
>   1.60      +10 -2     src/usr.bin/make/main.c
>   1.11      +2 -0      src/usr.bin/make/pathnames.h
>=20
I've been able to successfully upgrade a fresh 4.0-RELEASE to
4.6-RC2 with this patch applied to RELENG_4's make(1) sources.

The -DNOPERL is also required as gnu/usr.bin/perl/library/*
makefiles call /usr/obj Perl's MakeMaker generated makefiles
which have SHELL set to /bin/sh, and attempt to run shell from
here.  The work-around is to modify the "sh=3D" setting in the
gnu/usr.bin/perl/libperl/config.*, but I'm not sure if this
is the correct fix or not.  Mark Murray CC'ed for consultancy.

(If you're unfamiliar with the problem, ELF branding has been
changed between 4.0 and 4.1, and attempting to run 4.1 or
later's static "sh" binary doesn't work on 4.0).

With -DNOPERL, installworld still fails at the end trying to run
makewhatis(1) which attempts to run /usr/bin/perl.  This is the
last thing in installworld anyway, and is not critical.  There
are two possible fixes:

1.  Merge revs. 1.12 and 1.13 of share/man/Makefile, and set
    MAKEWHATIS=3D"${INSTALLTMP}/perl ${INSTALLTMP}/makewhatis".

2.  Merge the C version of makewhatis(1), it works very nice,
    and produces much more sane output than the Perl version.

Alternatively, ``make -DNOPERL -DNOMAN installworld'' will
succeed if this change for make(1) MFC'ed and this make(1)
is used during installworld ("make make" from under /usr/src
will do this for you).

RE, I've verified that source upgrades from 4.1-RELEASE to
4.6-RC2 still work flawlessly.


Cheers,
--=20
Ruslan Ermilov		Sysadmin and DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

--7gGkHNMELEOhSGF6
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)

iD8DBQE8674kUkv4P6juNwoRAvAOAJ9XU1TNYK63fKk1z3g2uun7NhYkAgCeOrvO
fSLglx1DrkgkuCxmH5V2Bsc=
=LJp9
-----END PGP SIGNATURE-----

--7gGkHNMELEOhSGF6--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020522154956.GC55670>