Author: wmb Date: Tue Jan 17 01:07:05 2012 New Revision: 2833 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2833
Log: Wrapper - Fixed problem with wrapper running under ARM Linux, introduced by svn 2830.
Modified: forth/wrapper/wrapper.c
Modified: forth/wrapper/wrapper.c ============================================================================== --- forth/wrapper/wrapper.c Mon Jan 16 22:05:34 2012 (r2832) +++ forth/wrapper/wrapper.c Tue Jan 17 01:07:05 2012 (r2833) @@ -697,6 +697,14 @@ char bpval[MAXPATHLEN]; char hostdirval[MAXPATHLEN];
+/* + * Set psuedo-environment-variable values for + * ${BP} - The top of the OFW build tree + * ${HOSTDIR} - The directory containing the host wrapper program + * Internal management of these values (see fetchenv()) eliminates the + * need for an external shell script to set them, thus making the build + * system more portable to platforms without Unix-style shells. + */ void set_bp(void); void set_bp(void) @@ -704,7 +712,16 @@ char here[MAXPATHLEN]; getcwd(here, MAXPATHLEN); getcwd(bpval, MAXPATHLEN); - while (access("ofw", F_OK)) { + while (1) { + if (access(host_cpu, F_OK) == 0) { + getcwd(hostdirval, MAXPATHLEN); + strcat(hostdirval, "/"); + strcat(hostdirval, host_cpu); + strcat(hostdirval, "/"); + strcat(hostdirval, host_os); + } + if (access("ofw", F_OK) == 0) + break; chdir(".."); getcwd(bpval, MAXPATHLEN); if (strcmp(bpval, "/") == 0) { @@ -1105,6 +1122,7 @@ # endif #endif
+#ifdef __APPLE_CC__ { /* * XCode specific behavior: if your function has a prototype, the compiler @@ -1117,6 +1135,11 @@ fflush(stdout); s_bye(func((char *)-1, functions, (long)loadaddr + memsize, argc, argv)); } +#endif + + s_bye((*(long (*) ())(loadaddr+sizeof(header)+START_OFFSET)) + (loadaddr, functions, ((long)loadaddr+dictsize - 16) & ~15, + argc, argv));
restoremode(); return 0;
openfirmware@openfirmware.info