Date: Sat, 25 May 2002 12:53:41 +0200 (CEST) From: Oliver Lehmann <lehmann@ans-netz.de> To: FreeBSD-gnats-submit@FreeBSD.org Cc: Oliver Lehmann <lehmann@ans-netz.de> Subject: misc/38538: make buildworld fails if you have an empty <MAKEOBJDIRPREFIX> directory Message-ID: <200205251053.g4PArfm50135@kartoffel.salatschuessel.net>
next in thread | raw e-mail | index | archive | help
>Number: 38538
>Category: misc
>Synopsis: make buildworld fails if you have an empty <MAKEOBJDIRPREFIX> directory
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat May 25 04:00:06 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Oliver Lehmann
>Release: FreeBSD 4.5-STABLE i386
>Organization:
>Environment:
System: FreeBSD kartoffel.salatschuessel.net 4.5-STABLE FreeBSD 4.5-STABLE #0: Sun Feb 10 22:28:35 CET 2002 olivleh1@bert.sesamestreet.net:/usr/obj/i386/usr/src/sys/SINA i386
>Description:
I just removed everything which lies under /usr/obj. Then i ran the
following commands in /usr/src
make clean
make cleandepend
find ./ -name "*.o" |xargs rm
(make world is creating object files under /usr/src. These fact prohibits
using the same repository on another architecture.)
Now i ran make buildworld und it stops at:
cc -O -pipe -static -o yacc closure.o error.o lalr.o lr0.o main.o mkpar.o o
utput.o reader.o skeleton.o symtab.o verbose.o warshall.o
sh /usr/src/tools/install.sh -c -o root -g wheel -m 555 yyfix.sh /usr/obj/i3
86/usr/bin/yyfix
install: /usr/obj/i386/usr/bin/yyfix: No such file or directory
*** Error code 71
Stop in /usr/src/usr.bin/yacc.
There are no directories created before install.sh is called. Thats why
install is predicted to fail.
>How-To-Repeat:
just remove /usr/obj/* and run make buildworld in /usr/src
>Fix:
Fix the Makefiles
i created a patch, but it does not work for all cases.
it works for:
install sourcefile1 sourcefile2 sourcefilen directory
install sourcefile directory/
install sourcefile targetfile
but it dows not work for e.g.:
sh /usr/src/tools/install.sh -c -s -o root -g wheel -m 555 size /usr/obj/i386/usr/libexec/elf
because, install.sh take the "targt-directory" (/usr/obj/i386/usr/libexec/elf)
as a "target file" (there is no / at the end of the directory).
--- install.sh.orig Wed Aug 8 09:42:21 2001
+++ install.sh Sat May 25 11:52:48 2002
@@ -39,4 +39,14 @@
done
# the remaining arguments are assumed to be files/dirs only.
+if [ $# -gt 2 ] ; then
+ dir=$(echo $* | sed 's/.* //g')
+else
+ dir=$(echo $* | sed 's/.* \(.*\)\/.*/\1/g')
+fi
+
+if [ ! -d "$dir" ] ; then
+ mkdir -p $dir
+fi
+
exec install -p $*
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200205251053.g4PArfm50135>
