From owner-freebsd-current@FreeBSD.ORG Sat Feb 11 17:23:32 2006 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9148816A44B for ; Sat, 11 Feb 2006 17:23:32 +0000 (GMT) (envelope-from jamesb@acelere.net) Received: from acelere.net (acelere.net [12.104.134.130]) by mx1.FreeBSD.org (Postfix) with SMTP id 22A4A43D4C for ; Sat, 11 Feb 2006 17:23:31 +0000 (GMT) (envelope-from jamesb@acelere.net) Received: (qmail 36213 invoked by uid 500); 11 Feb 2006 17:23:30 -0000 Date: 11 Feb 2006 09:23:30 -0800 Date: Sat, 11 Feb 2006 09:23:30 -0800 From: James Bowman To: freebsd-current@freebsd.org Message-ID: <20060211172330.GL22519@colossus.acelere.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.1i Subject: Error building acpi_wakecode.S X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Feb 2006 17:23:32 -0000 All, I hit this problem in "make buildkernel" this morning: sh @/kern/genassym.sh genassym.o > assym.s /usr/obj/usr/src/make.i386/make -f /usr/src/sys/modules/acpi/acpi/../../../i386/acpica/Makefile MAKESRCPATH=/usr/src/sys/modules/acpi/acpi/../../../i386/acpica cc -O2 -fno-strict-aliasing -pipe -I. -I@ -g -c /usr/src/sys/modules/acpi/acpi/../../../i386/acpica/acpi_wakecode.S /usr/src/sys/modules/acpi/acpi/../../../i386/acpica/acpi_wakecode.S: Assembler messages: /usr/src/sys/modules/acpi/acpi/../../../i386/acpica/acpi_wakecode.S:103: Error: suffix or operands invalid for `ljmp' *** Error code 1 Looking back, a couple of people have hit the same thing in the past. Well, the cause is a lack of devfs! I am building inside a jail, and had forgotten to do: mount -t devfs devfs /usr/jail/dev The problem starts in the script genassym.sh. genassym.sh uses /dev/stdout, and if /dev/stdout isn't present, it quietly produces no output. So assym.s is empty and doesn't define any symbols, so acpi_wakecode.S cannot assemble. Changing kmod.mk line 406 from: sh @/kern/genassym.sh genassym.o > ${.TARGET} to sh @/kern/genassym.sh -o ${.TARGET} genassym.o means that the script no longer uses /dev/stdout. -- James Bowman http://acelere.net