Hi,
Im having difficulties compiling world and kernel on an amd64 for one of
my i386 machines. I dont know If I'm doing it wrong or something else it
broken..
build machine: FreeBSD torus.pean.org 10.0-RC2 FreeBSD 10.0-RC2 #0
r259522: Wed Dec 18 09:27:56 CET 2013
root at torus.pean.org:/usr/obj/usr/src/sys/GENERIC amd64
src tree:
Working Copy Root Path: /usr/src-soekris
URL: https://svn0.us-west.freebsd.org/base/releng/10.0
Relative URL: ^/releng/10.0
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 260687
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 260664
Last Changed Date: 2014-01-15 02:14:52 +0100 (Wed, 15 Jan 2014)
I have a freshly checked out source tree and a separate obj-tree.
building with these settings:
TARGET_ARCH=i386
TARGET=i386
MAKEOBJDIRPREFIX=/usr/obj-soekris
KERNCONF=SOEKRIS
First of all it tries to install liblegacy.a to
/usr/obj-soekris/legacy/usr/lib which does not exist. After creating
that directory it build world compiles for a while but then stop with
this error:
----
==> usr.bin/clang/tblgen (obj,depend,all,install)
make[3]: .depend, 2554: ignoring stale .depend for
/usr/obj-soekris/i386.i386/usr/src-soekris/tmp/legacy/usr/lib/libegacy.a
clang++ -O2 -pipe
-I/usr/src-soekris/usr.bin/clang/tblgen/../../../contrib/llvm/include
-I/usr/src-soekris/usr.bin/clang/tblgen/../../../contrib/llvm/tools/clang/include
-I/usr/src-soekris/usr.bin/clang/tblgen/../../../contrib/llvm/utils/TableGen
-I.
-I/usr/src-soekris/usr.bin/clang/tblgen/../../../contrib/llvm/../../lib/clang/include
-DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS -DNDEBUG -fno-strict-aliasing
-DLLVM_DEFAULT_TARGET_TRIPLE=\"i386-unknown-freebsd10.0\"
-DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd10.0\"
-DDEFAULT_SYSROOT=\"\"
-I/usr/obj-soekris/i386.i386/usr/src-soekris/tmp/legacy/usr/include
-Wno-c++11-extensions -fno-exceptions -fno-rtti -static
-L/usr/obj-soekris/i386.i386/usr/src-soekris/tmp/legacy/usr/lib -o
tblgen AsmMatcherEmitter.o AsmWriterEmitter.o AsmWriterInst.o
CTagsEmitter.o CallingConvEmitter.o CodeEmitterGen.o
CodeGenDAGPatterns.o CodeGenInstruction.o CodeGenMapTable.o
CodeGenRegisters.o CodeGenSchedule.o CodeGenTarget.o DAGISelEmitter.o
DAGISelMatcher.o DAGISelMatcherEmitter.o DAGISelMatcherGen.o
DAGISelMatcherOpt.o DFAPacketizerEmitter.o DisassemblerEmitter.o
FastISelEmitter.o FixedLenDecoderEmitter.o InstrInfoEmitter.o
IntrinsicEmitter.o OptParserEmitter.o PseudoLoweringEmitter.o
RegisterInfoEmitter.o SetTheory.o SubtargetEmitter.o TGValueTypes.o
TableGen.o X86DisassemblerTables.o X86ModRMFilters.o
X86RecognizableInstr.o
/usr/src-soekris/usr.bin/clang/tblgen/../../../lib/clang/libllvmtablegen/libllvmtablegen.a
/usr/src-soekris/usr.bin/clang/tblgen/../../../lib/clang/libllvmsupport/libllvmsupport.a
-legacy
/usr/bin/ld: cannot find -legacy
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
*** Error code 1
Stop.
make[3]: stopped in /usr/src-soekris/usr.bin/clang/tblgen
*** Error code 1
----
Trying to buildkernel on the other hand fails with the following error:
----
x86 -> /usr/src-soekris/sys/x86/include
clang -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline
-Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions
-Wmissing-include-dirs -fdiagnostics-show-option
-Wno-error-tautological-compare -Wno-error-empty-body
-Wno-error-parentheses-equality -nostdinc -I. -I/usr/src-soekris/sys
-I/usr/src-soekris/sys/contrib/altq
-I/usr/src-soekris/sys/contrib/ipfilter -I/usr/src-soekris/sys/dev/ath
-I/usr/src-soekris/sys/dev/ath/ath_hal
-I/usr/src-soekris/sys/contrib/dev/ath/ath_hal
-I/usr/src-soekris/sys/contrib/ngatm -I/usr/src-soekris/sys/dev/twa
-I/usr/src-soekris/sys/dev/cxgb -I/usr/src-soekris/sys/dev/cxgbe
-I/usr/src-soekris/sys/contrib/libfdt -D_KERNEL
-DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -mno-aes -mno-avx
-mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector
/usr/src-soekris/sys/i386/i386/genassym.c
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:44:
In file included from /usr/src-soekris/sys/sys/systm.h:42:
./machine/cpufunc.h:468:41: warning: cast to 'char *' from smaller
integer type 'u_int' (aka 'unsigned int')
[-Wint-to-pointer-cast]
__asm __volatile("invlpg %0" : : "m" (*(char
*)addr) : "memory");
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:47:
In file included from /usr/src-soekris/sys/sys/buf.h:260:
In file included from /usr/src-soekris/sys/sys/proc.h:62:
In file included from /usr/src-soekris/sys/sys/pcpu.h:48:
In file included from ./machine/pcpu.h:36:
./machine/segments.h:91:29: error: use of undeclared identifier 'NLDT'
extern union descriptor ldt[NLDT];
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:76:
In file included from ./machine/pcb.h:45:
./machine/npx.h:56:14: error: use of 'savefpu' with tag type that does
not match previous declaration
void npxsave(union savefpu *addr);
^~~~~
struct
./x86/fpu.h:140:8: note: previous use is here
struct savefpu {
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:76:
In file included from ./machine/pcb.h:45:
./machine/npx.h:57:36: error: use of 'savefpu' with tag type that does
not match previous declaration
void npxsetregs(struct thread *td, union savefpu *addr);
^~~~~
struct
./x86/fpu.h:140:8: note: previous use is here
struct savefpu {
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:76:
./machine/pcb.h:66:2: error: use of 'savefpu' with tag type that does
not match previous declaration
union savefpu pcb_user_save;
^~~~~
struct
./x86/fpu.h:140:8: note: previous use is here
struct savefpu {
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:76:
./machine/pcb.h:87:2: error: use of 'savefpu' with tag type that does
not match previous declaration
union savefpu *pcb_save;
^~~~~
struct
./x86/fpu.h:140:8: note: previous use is here
struct savefpu {
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:76:
./machine/pcb.h:100:30: warning: calling convention '__fastcall__'
ignored for this target [-Wignored-attributes]
void resumectx(struct pcb *) __fastcall;
^
/usr/src-soekris/sys/sys/cdefs.h:355:35: note: expanded from macro
'__fastcall'
#define __fastcall __attribute__((__fastcall__))
^
In file included from /usr/src-soekris/sys/i386/i386/genassym.c:77:
./machine/sigframe.h:86:19: error: field has incomplete type 'struct
ucontext'
struct ucontext4 sf_uc; /* = *sf_ucontext */
^
./machine/sigframe.h:86:9: note: forward declaration of 'struct
ucontext'
struct ucontext4 sf_uc; /* = *sf_ucontext */
^
/usr/src-soekris/sys/sys/ucontext.h:66:19: note: expanded from macro
'ucontext4'
#define ucontext4 ucontext
[....]
----