site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com Hi Terry, Had the exact same problem and located the problem: Hope this helps... // Robert On Sat, 11 Jun 2005, Terry Greeniaus wrote: On Sat, 11 Jun 2005 J?rgen Bereuter <juergen.bereuter@aon.at> 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 (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/rjurgens%40cc.hut.fi This email sent to rjurgens@cc.hut.fi _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... There is a header file called fpu.h in include/architecture/i386/fpu.h. This contains the correct version of the fpu struct. The problem is, however, that this file is not used in the build. There is another one in the include path somewhere (try locate fpu.h). The other one has an #ifdef inside the fpu struct. The macro is supposed to ensure that both an old and a new verions of fpu works. The new uses fp_environ instead of environ and the same goes for stack. The required define parameter is not defined in the cctools Makefile so the fpu struct is defined with fp_<variables>. I solved this problem by simply replacing all fpu->environ to fpu->fp_environ and the same for the stack variable. I only had to alter the bytesex.c. Didn't try to define the macro in Makefile, but I suppose that works too. Had no problem after this, only followed the instructions on the same site that you're using. This email sent to site_archiver@lists.apple.com
participants (1)
-
rjurgens@cc.hut.fi