From owner-freebsd-stable@FreeBSD.ORG Fri Aug 22 06:39:24 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 44FA516A4C0 for ; Fri, 22 Aug 2003 06:39:24 -0700 (PDT) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by mx1.FreeBSD.org (Postfix) with ESMTP id 35D6843FCB for ; Fri, 22 Aug 2003 06:39:22 -0700 (PDT) (envelope-from freebsd-stable@m.gmane.org) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 19qC9J-0000gg-00 for ; Fri, 22 Aug 2003 15:40:17 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-stable@freebsd.org Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19qC9G-0000gU-00 for ; Fri, 22 Aug 2003 15:40:14 +0200 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 19qC8L-0002pn-00 for ; Fri, 22 Aug 2003 15:39:17 +0200 From: Clemens Fischer Date: Fri, 22 Aug 2003 14:17:22 +0200 Lines: 137 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (berkeley-unix) Cancel-Lock: sha1:t/RTrSzrotxE+CphHZGwyqOwjFw= Sender: news Subject: kernel: locore.s doesn't assemble (fillkpt, $PAGE_SHIFT, $PTESHIFT) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Aug 2003 13:39:24 -0000 since august 8th, 2003 the kernel on my i386 pentiumIII won't compile. the problem arises in locore.s with the definition of the constants $PAGE_SHIFT and $PTESHIFT used in `shr' and `shl' instructions within the macros `fillkpt' and `fillkptphys'. i've tried to cvsup(1) RELENG_4 and RELENG_4_8 every day for over a week now, but kernel builds (as part of a buildworld) don't work anymore. i have set up an area different from the usual /usr/obj/, so i can experiment. if somebody has tips for me, i could do a lot without destroying what's left of my last clean install. locore.s depends on a number of files, one of which is assym.s. assym.s should "#define PAGE_SHIFT ...", but the file is empty (but it exists!). $PTESHIFT comes from machine/pmap.h, but this file exists and defines this constant. here's the make-log, with the offending lines right beneith the error messages. the formatting comes from the way cpp(1) expands macros: --8<---cut here:--start--->8-- Examining locore.o...non-existent...modified before source...out-of-date. cc -c -x assembler-with-cpp -DLOCORE -O -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -ansi -nostdinc -I- -I. -I/www/freebsd/RELENG_4/src/sys -I/www/ freebsd/RELENG_4/src/sys/../include -I/www/freebsd/RELENG_4/src/sys/contrib/ipfilter -D_KERNEL -include opt_global.h -mpr eferred-stack-boundary=2 /www/freebsd/RELENG_4/src/sys/i386/i386/locore.s /tmp/ccOO8Chb.s: Assembler messages: /tmp/ccOO8Chb.s:2495: Error: suffix or operands invalid for `shr' shrl $PAGE_SHIFT,%ecx /tmp/ccOO8Chb.s:2496: Error: suffix or operands invalid for `shr' /tmp/ccOO8Chb.s:2496: Error: suffix or operands invalid for `shl' movl %eax, %ebx ; shrl $PAGE_SHIFT, %ebx ; shll $PTESHIFT,%ebx ; addl (( KPTphys )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl %edx ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2512: Error: suffix or operands invalid for `shr' shrl $PAGE_SHIFT,%ecx /tmp/ccOO8Chb.s:2513: Error: suffix or operands invalid for `shr' /tmp/ccOO8Chb.s:2513: Error: suffix or operands invalid for `shl' movl %eax, %ebx ; shrl $PAGE_SHIFT, %ebx ; shll $PTESHIFT,%ebx ; addl (( KPTphys )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl %edx ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2518: Error: suffix or operands invalid for `shr' /tmp/ccOO8Chb.s:2518: Error: suffix or operands invalid for `shl' movl %eax, %ebx ; shrl $PAGE_SHIFT, %ebx ; shll $PTESHIFT,%ebx ; addl (( KPTphys )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %ea x,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2523: Error: suffix or operands invalid for `shr' /tmp/ccOO8Chb.s:2523: Error: suffix or operands invalid for `shl' movl %eax, %ebx ; shrl $PAGE_SHIFT, %ebx ; shll $PTESHIFT,%ebx ; addl (( KPTphys )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %ea x,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2528: Error: suffix or operands invalid for `shr' /tmp/ccOO8Chb.s:2528: Error: suffix or operands invalid for `shl' movl %eax, %ebx ; shrl $PAGE_SHIFT, %ebx ; shll $PTESHIFT,%ebx ; addl (( KPTphys )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %ea x,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2533: Error: suffix or operands invalid for `shr' /tmp/ccOO8Chb.s:2533: Error: suffix or operands invalid for `shl' movl %eax, %ebx ; shrl $PAGE_SHIFT, %ebx ; shll $PTESHIFT,%ebx ; addl (( KPTphys )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %ea x,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2539: Error: suffix or operands invalid for `shl' shll $PTESHIFT,%ebx ; addl (( vm86pa )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 | 0x004 ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2545: Error: suffix or operands invalid for `shl' shll $PTESHIFT,%ebx ; addl (( vm86pa )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 | 0x004 ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2554: Error: suffix or operands invalid for `shl' shll $PTESHIFT,%ebx ; addl (( IdlePTD )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2560: Error: suffix or operands invalid for `shl' shll $PTESHIFT,%ebx ; addl (( IdlePTD )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b /tmp/ccOO8Chb.s:2566: Error: suffix or operands invalid for `shl' shll $PTESHIFT,%ebx ; addl (( IdlePTD )-KERNBASE) ,%ebx ; orl $0x001 ,%eax ; orl $0x002 ,%eax ; 1: movl %eax,(%ebx) ; addl $PAGE_SIZE,%eax ; addl $PTESIZE,%ebx ; loop 1b *** Error code 1 Stop in /www/freebsd/obj/www/freebsd/RELENG_4/src/sys/n1. --8<---cut here:---end---->8-- btw: the .depend in my kernel build staging area lists more files than locore.s itself includes, and all opt_*.h files are empty, as is assym.s. i have checked the genassym.sh script and tried the nm(1) tool, re-installed perl (fearing that this beast was responsible) and tried to track the problem to the actual point of failure, but the number of files and procedures involved is too much for me. this problem needs someone who knows how building the kernel works. regards, clemens