[LinuxBIOS] [PATCH] v3: compile on Mac OS X
Stefan Reinauer
stepan at coresystems.de
Thu Jul 12 22:24:30 CEST 2007
* Uwe Hermann <uwe at hermann-uwe.de> [070712 21:19]:
> > +Building on MacOS X
> ^
> Space? What's the "official" name?
Yeah, thanks. Official name is with space:
http://www.apple.com/de/macosx/tiger/
> > @@ -45,7 +45,7 @@
> > HOSTCC := gcc
> > HOSTCXX := g++
> > HOSTCFLAGS := -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
> > - -Wno-unused -Wno-sign-compare
> > + -Wno-unused -Wno-sign-compare -DKBUILD_NO_NLS
>
> Is this causing problems on OS X? Which? Why don't we see the problems
> on other systems?
Good question.
/Users/stepan/Devel/LinuxBIOSv3/util/kconfig/lkc.h:12:22: error: libintl.h: No such file or directory
/Users/stepan/Devel/LinuxBIOSv3/util/kconfig/mconf.c: In function 'search_conf':
/Users/stepan/Devel/LinuxBIOSv3/util/kconfig/mconf.c:535: warning: implicit declaration of function 'gettext'
/Users/stepan/Devel/LinuxBIOSv3/util/kconfig/mconf.c:535: warning: incompatible implicit declaration of built-in function 'gettext'
Does anyone know a better way?
Would this work at all? I never saw anything but english texts in
kconfig..
> > - $(Q)printf "#define LINUXBIOS_COMPILE_DOMAIN \"$(shell which dnsdomainname 1>/dev/null && dnsdomainname || domainname)\"\n" >> $(obj)/build.h
> > + $(Q)printf "#define LINUXBIOS_COMPILE_DOMAIN \"$(shell test `uname -s` == "Linux" && dnsdomainname || domainname)\"\n" >> $(obj)/build.h
>
> Is 'uname -s' guaranteed to work everywhere?
uname -s is IEEE Std 1003.2-1992 (POSIX.2). So basically everywhere,
yes.
Funny enough, using a return code of "which" seems not to be standard.
On OSX it prints an error message and exits with 0.
> > - searchgnu as >/dev/null && echo "AS_x86 := $(searchgnu as)"
> > - searchgnu ld >/dev/null && echo "LD_x86 := $(searchgnu ld)"
> > - searchgnu objcopy >/dev/null && echo "OBJCOPY_x86 := $(searchgnu objcopy)"
> > + searchgnu ar >/dev/null && echo "AR_x86 := $(searchgnu ar)"
> > + searchgnu as >/dev/null && echo "AS_x86 := $(searchgnu as)"
> > + searchgnu ld >/dev/null && echo "LD_x86 := $(searchgnu ld)"
> > + searchgnu objcopy >/dev/null && echo "OBJCOPY_x86 := $(searchgnu objcopy)"
> > + else
> > + CC="i386-elf-gcc-3.4.3"
> > + echo "CC_x86 := i386-elf-gcc-3.4.3"
>
> Can this be generalized somehow? You don't want to change this everytime
> the gcc version number there changes...
I hope so. MacPorts does not have symlinks for their compiler, that
sucks. It was a first shot so it works building locally here. What's
better? adding manual link setup to the README?
Or using wild cards?
> > -#define ALIGN(x, a) (((x) + ((a) - 1)) & ~((a) - 1))
> > -#define PALIGN(p, a) ((void *)(ALIGN((unsigned long)(p), (a))))
> > +#define DALIGN(x, a) (((x) + ((a) - 1)) & ~((a) - 1))
> > +#define PALIGN(p, a) ((void *)(DALIGN((unsigned long)(p), (a))))
>
> Hm? Why? What's the rationale? Please add a comment.
The one is aligning data, so it's D ALIGN ;-)
OSX has a macro called ALIGN with different parameters. What should the
comment say? "Don't rename back to ALIGN because it would break Mac OS
X" ?
> Patch looks good otherwise, doesn't break the build for non-Mac-OS-X
> systems, it seems.
>
> Acked-by: Uwe Hermann <uwe at hermann-uwe.de>
Thanks.
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.de • http://www.coresystems.de/
More information about the coreboot
mailing list