Skip site navigation (1)Skip section navigation (2)
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>