RE: Build kernel
RE: Build kernel
- Subject: RE: Build kernel
- From: Terry Greeniaus <email@hidden>
- Date: Sat, 11 Jun 2005 20:56:31 -0600 (MDT)
On Sat, 11 Jun 2005 J?rgen Bereuter <email@hidden> wrote:
> Hello Sergey,
>
> for building a new Darwin kernel look at http://developer.apple.com/
> documentation/Darwin/Conceptual/KernelProgramming/build/
> chapter_18_section_3.html .
> Should work, dont forget to set the PATH environment variable, as
> mentioned in note.
In the vain hope that this might actually work, I downloaded the
required files and set up everything as described in the instructions:
$ pwd
/Users/tgree/Development/Darwin/Darwin-10.4.1
$ ls -l -a
drwxr-xr-x 25 tgree tgree 850 Jun 11 20:29 Libstreams-24.1
drwxr-xr-x 12 tgree tgree 408 Feb 18 23:41 bootstrap_cmds-49
drwxr-xr-x 22 tgree tgree 748 May 10 17:57 cctools-576.2
drwxr-xr-x 32 tgree tgree 1088 Apr 28 16:11 kext_tools-59
drwxr-xr-x 17 tgree tgree 578 May 20 19:46 xnu-792.1.5
$ uname -a
Darwin Terry-Greeniaus-Computer.local 8.1.0 Darwin Kernel Version 8.1.0:
Tue May 10 18:16:08 PDT 2005; root:xnu-792.1.5.obj~4/RELEASE_PPC Power
Macintosh powerpc
$ gcc -v
Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
Thread model: posix
gcc version 3.3 20030304 (Apple Computer, Inc. build 1809)
$ echo $PATH
/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin
So, everything looks like it is set up properly. Things work fine until
I get to the line:
$ cd ../cctools
-bash: cd: ../cctools: No such file or directory
Of course, this should probably be:
$ cd ../cctools-576.2
(meaning th line should be "cd ../cctools-version" like the other lines
in the instructions). Having done that however, the next line fails
miserably:
$ sudo cp /usr/include/sys/ar.h \
/System/Library/Frameworks/Kernel.framework/Headers
cp: /usr/include/sys/ar.h: No such file or directory
However, I see ar.h in a different directory:
$ ls -l /usr/include/ar.h
-r--r--r-- 1 root wheel 3880 May 26 18:34 /usr/include/ar.h
I'm a bit suspicious about this, and also about copying it directly into
the Kernel.framework/Headers directory. But I tried it:
$ sudo cp /usr/include/ar.h \
/System/Library/Frameworks/Kernel.framework/Headers/
This didn't complain about anything... Next I edited the COMMON_SUBDIRS
line in the cctools Makefile. The archive I got off the website had
permissions set as read-only on the Makefile (perhaps by design) so I
had to change that before editing the Makefile. After editing:
$ make RC_OS=macos
=========== make all for libstuff =============
/bin/mkdir -p static_obj
/bin/mkdir -p dynamic_obj
/bin/mkdir -p profile_obj
/bin/mkdir -p shlib_obj
/bin/mkdir -p static64_obj
/bin/mkdir -p dynamic64_obj
/bin/mkdir -p profile64_obj
/bin/mkdir -p static_kld_obj
cc -O -g -I../../include -Wall -Wno-long-double -no-cpp-precomp -static
-c \
-MD -dependency-file ./allocate.d \
-o ./allocate.o ../allocate.c
md -d -u ./Makedep ./allocate.d
cc -O -g -I../../include -Wall -Wno-long-double -no-cpp-precomp -static
-c \
-MD -dependency-file ./errors.d \
-o ./errors.o ../errors.c
md -d -u ./Makedep ./errors.d
cc -O -g -I../../include -Wall -Wno-long-double -no-cpp-precomp -static
-c \
-MD -dependency-file ./arch.d \
-o ./arch.o ../arch.c
md -d -u ./Makedep ./arch.d
cc -O -g -I../../include -Wall -Wno-long-double -no-cpp-precomp -static
-c \
-MD -dependency-file ./execute.d \
-o ./execute.o ../execute.c
md -d -u ./Makedep ./execute.d
cc -O -g -I../../include -Wall -Wno-long-double -no-cpp-precomp -static
-c \
-MD -dependency-file ./bytesex.d \
-o ./bytesex.o ../bytesex.c
../bytesex.c: In function `swap_i386_thread_fpstate':
../bytesex.c:1316: error: structure has no member named `environ'
../bytesex.c:1316: error: structure has no member named `environ'
../bytesex.c:1316: error: structure has no member named `environ'
../bytesex.c:1316: error: structure has no member named `environ'
../bytesex.c:1316: error: structure has no member named `environ'
../bytesex.c:1317: error: structure has no member named `environ'
../bytesex.c:1317: error: structure has no member named `environ'
../bytesex.c:1317: error: structure has no member named `environ'
../bytesex.c:1318: error: structure has no member named `environ'
../bytesex.c:1318: error: structure has no member named `environ'
../bytesex.c:1318: error: structure has no member named `environ'
../bytesex.c:1318: error: structure has no member named `environ'
../bytesex.c:1318: error: structure has no member named `environ'
../bytesex.c:1321: error: structure has no member named `environ'
../bytesex.c:1324: error: structure has no member named `environ'
../bytesex.c:1325: error: structure has no member named `environ'
../bytesex.c:1326: error: structure has no member named `environ'
../bytesex.c:1327: error: structure has no member named `environ'
../bytesex.c:1328: error: structure has no member named `environ'
../bytesex.c:1329: error: structure has no member named `environ'
../bytesex.c:1330: error: structure has no member named `environ'
../bytesex.c:1331: error: structure has no member named `environ'
../bytesex.c:1333: error: structure has no member named `environ'
../bytesex.c:1336: error: structure has no member named `environ'
../bytesex.c:1337: error: structure has no member named `environ'
../bytesex.c:1338: error: structure has no member named `environ'
../bytesex.c:1339: error: structure has no member named `environ'
../bytesex.c:1340: error: structure has no member named `environ'
../bytesex.c:1341: error: structure has no member named `environ'
../bytesex.c:1342: error: structure has no member named `environ'
../bytesex.c:1343: error: structure has no member named `environ'
../bytesex.c:1344: error: structure has no member named `environ'
../bytesex.c:1345: error: structure has no member named `environ'
../bytesex.c:1346: error: structure has no member named `environ'
../bytesex.c:1347: error: structure has no member named `environ'
../bytesex.c:1348: error: structure has no member named `environ'
../bytesex.c:1349: error: structure has no member named `environ'
../bytesex.c:1351: error: structure has no member named `environ'
../bytesex.c:1354: error: structure has no member named `environ'
../bytesex.c:1355: error: structure has no member named `environ'
../bytesex.c:1356: error: structure has no member named `environ'
../bytesex.c:1357: error: structure has no member named `environ'
../bytesex.c:1358: error: structure has no member named `environ'
../bytesex.c:1359: error: structure has no member named `environ'
../bytesex.c:1360: error: structure has no member named `environ'
../bytesex.c:1361: error: structure has no member named `environ'
../bytesex.c:1363: error: structure has no member named `environ'
../bytesex.c:1366: error: structure has no member named `environ'
../bytesex.c:1367: error: structure has no member named `environ'
../bytesex.c:1368: error: structure has no member named `environ'
../bytesex.c:1370: error: structure has no member named `environ'
../bytesex.c:1373: error: structure has no member named `environ'
../bytesex.c:1374: error: structure has no member named `environ'
../bytesex.c:1375: error: structure has no member named `environ'
../bytesex.c:1378: error: structure has no member named `stack'
../bytesex.c:1380: error: structure has no member named `stack'
../bytesex.c:1381: error: structure has no member named `stack'
../bytesex.c:1382: error: structure has no member named `stack'
../bytesex.c:1383: error: structure has no member named `stack'
../bytesex.c:1385: error: structure has no member named `stack'
../bytesex.c:1386: error: structure has no member named `stack'
../bytesex.c:1390: error: structure has no member named `environ'
../bytesex.c:1391: error: structure has no member named `environ'
../bytesex.c:1392: error: structure has no member named `environ'
../bytesex.c:1393: error: structure has no member named `environ'
../bytesex.c:1394: error: structure has no member named `environ'
../bytesex.c:1395: error: structure has no member named `environ'
../bytesex.c:1396: error: structure has no member named `environ'
../bytesex.c:1397: error: structure has no member named `environ'
../bytesex.c:1399: error: structure has no member named `environ'
../bytesex.c:1402: error: structure has no member named `environ'
../bytesex.c:1403: error: structure has no member named `environ'
../bytesex.c:1404: error: structure has no member named `environ'
../bytesex.c:1405: error: structure has no member named `environ'
../bytesex.c:1406: error: structure has no member named `environ'
../bytesex.c:1407: error: structure has no member named `environ'
../bytesex.c:1408: error: structure has no member named `environ'
../bytesex.c:1409: error: structure has no member named `environ'
../bytesex.c:1410: error: structure has no member named `environ'
../bytesex.c:1411: error: structure has no member named `environ'
../bytesex.c:1412: error: structure has no member named `environ'
../bytesex.c:1413: error: structure has no member named `environ'
../bytesex.c:1414: error: structure has no member named `environ'
../bytesex.c:1415: error: structure has no member named `environ'
../bytesex.c:1417: error: structure has no member named `environ'
../bytesex.c:1420: error: structure has no member named `environ'
../bytesex.c:1421: error: structure has no member named `environ'
../bytesex.c:1422: error: structure has no member named `environ'
../bytesex.c:1423: error: structure has no member named `environ'
../bytesex.c:1424: error: structure has no member named `environ'
../bytesex.c:1425: error: structure has no member named `environ'
../bytesex.c:1426: error: structure has no member named `environ'
../bytesex.c:1427: error: structure has no member named `environ'
../bytesex.c:1429: error: structure has no member named `environ'
../bytesex.c:1432: error: structure has no member named `environ'
../bytesex.c:1433: error: structure has no member named `environ'
../bytesex.c:1434: error: structure has no member named `environ'
../bytesex.c:1436: error: structure has no member named `environ'
../bytesex.c:1439: error: structure has no member named `environ'
../bytesex.c:1440: error: structure has no member named `environ'
../bytesex.c:1441: error: structure has no member named `environ'
../bytesex.c:1443: error: structure has no member named `environ'
../bytesex.c:1447: error: structure has no member named `stack'
../bytesex.c:1447: error: structure has no member named `stack'
../bytesex.c:1448: error: structure has no member named `stack'
../bytesex.c:1448: error: structure has no member named `stack'
../bytesex.c:1449: error: structure has no member named `stack'
../bytesex.c:1449: error: structure has no member named `stack'
../bytesex.c:1450: error: structure has no member named `stack'
../bytesex.c:1450: error: structure has no member named `stack'
../bytesex.c:1451: error: structure has no member named `stack'
../bytesex.c:1452: error: structure has no member named `stack'
../bytesex.c:1454: error: structure has no member named `stack'
make[2]: *** [bytesex.o] Error 1
make[1]: *** [static] Error 2
make: *** [all] Error 1
No misc/seg_hack.NEW file was generated. At this point I gave up, the
instructions are clearly fubared. Could an Apple engineer fix them?
I'd also appreciate it if someone who has built a kernel (preferably
from scratch) could post instructions on how this is really
accomplished. Perhaps with the darwinbuild scripts? But the
darwinbuild plists directory doesn't have an 8B15.plist file, which is
what I understand is required to build a 10.4.1 project.
Thanks,
TG
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden