[ipxe-devel] [OpenBSD] compilation error: net/80211/wpa.c:424: warning: format '%d' expects type '
Pascal Stumpf
Pascal.Stumpf at cubes.de
Sat Dec 7 10:57:34 UTC 2013
On Sat, 7 Dec 2013 10:46:13 +0000, Stuart Henderson wrote:
> On 2013/12/06 17:05, Michael Brown wrote:
> > On 02/12/13 14:59, Jiri B wrote:
> > ># gmake bin/undionly.kpxe
> > > [BIN] bin/undionly.kpxe.bin
> > > [ZINFO] bin/undionly.kpxe.zinfo
> > > [ZBIN] bin/undionly.kpxe.zbin
> > >Add at 0x787 outside output buffer
> > >Makefile.housekeeping:1052: recipe for target 'bin/undionly.kpxe.zbin' failed
> > >gmake: *** [bin/undionly.kpxe.zbin] Error 1
> > >gmake: *** Deleting file 'bin/undionly.kpxe.zbin'
> > >rm bin/undionly.kpxe.zinfo bin/undionly.kpxe.bin
> > >
> > ># cat -n Makefile.housekeeping | sed -n '1049,1054p'
> > > 1049 # Compress raw binary file
> > > 1050 #
> > > 1051 $(BIN)/%.zbin : $(BIN)/%.bin $(BIN)/%.zinfo $(ZBIN)
> > > 1052 $(QM)$(ECHO) " [ZBIN] $@"
> > > 1053 $(Q)$(ZBIN) $(BIN)/$*.bin $(BIN)/$*.zinfo> $@
> > > 1054
> > >-%-
> > >
> > >Any idea? Old GNU ld on OpenBSD, any workaround?
> >
> > For reference, this should be fixed as of commit
> >
> > http://git.ipxe.org/ipxe.git/commitdiff/1403bda
> >
> > Michael
> >
>
> They're not exactly dynamically linked, but PIE is used by default
> in OpenBSD (opt-out rather than opt-in; every program uses PIE unless
> specifically told not to).
>
> So, even though the files are statically linked, they still use
> ld.so which handles the relocation.
>
> The more accurate fix would probably be using "-fno-pie" rather than
> "-static". (-static implies -fno-pie).
Correction: -static implies -nopie (linker flag), not -fno-pie (compiler
flag).
-fno-pie: Do not generate position-independent code
-nopie: Do not try to link a position-independent binary
So a program that wishes to turn off PIE should use -fno-pie while
compiling and -static while linking. Also note that -nopie is an
OpenBSD-only flag, so for a portable project, it is probably better to
rely on the fact that -static implies -nopie.
> c.f. memtest86+,
> http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/sysutils/memtest86+/patches/patch-Makefile
>
>
More information about the ipxe-devel
mailing list