socsvn commit: r236816 - in soc2012/emc2: experimental
head/sys/boot/i386/efi
emc2 at FreeBSD.org
emc2 at FreeBSD.org
Thu May 31 14:56:23 UTC 2012
Author: emc2
Date: Thu May 31 14:56:20 2012
New Revision: 236816
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=236816
Log:
Added directory for experiments
Added:
soc2012/emc2/experimental/
soc2012/emc2/experimental/Makefile
soc2012/emc2/experimental/helloworld.c
soc2012/emc2/experimental/ldscript.i386
Modified:
soc2012/emc2/head/sys/boot/i386/efi/Makefile
Added: soc2012/emc2/experimental/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ soc2012/emc2/experimental/Makefile Thu May 31 14:56:20 2012 (r236816)
@@ -0,0 +1,18 @@
+CC=clang
+CFLAGS=-O2 -m32 -I../head/sys/boot/efi/include/ -I../head/sys/boot/efi/include/i386
+OBJCOPY=objcopy
+EFIFORMAT=efi-app-ia32
+LDSCRIPT=ldscript.i386
+
+all: helloworld.efi
+
+helloworld.o: helloworld.c
+ ${CC} -c ${CFLAGS} helloworld.c
+
+helloworld: helloworld.o
+ ${LD} -T ${LDSCRIPT} -shared -symbolic -o helloworld helloworld.o
+
+helloworld.efi: helloworld
+ ${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \
+ -j .rel.dyn -j .reloc -j .sdata -j .text -j set_Xcommand_set \
+ --target=${EFIFORMAT} ${.ALLSRC} helloworld.efi
\ No newline at end of file
Added: soc2012/emc2/experimental/helloworld.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ soc2012/emc2/experimental/helloworld.c Thu May 31 14:56:20 2012 (r236816)
@@ -0,0 +1,12 @@
+#include <efi.h>
+
+unsigned short str[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '\n', '\r', 0 };
+
+EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE* systab)
+{
+
+ systab->ConOut->OutputString(systab->ConOut, str);
+
+ return EFI_SUCCESS;
+}
Added: soc2012/emc2/experimental/ldscript.i386
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ soc2012/emc2/experimental/ldscript.i386 Thu May 31 14:56:20 2012 (r236816)
@@ -0,0 +1,72 @@
+/* $FreeBSD: soc2012/emc2/head/sys/boot/i386/efi/ldscript.i386 206419 2010-04-07 18:16:05Z rpaulo $ */
+OUTPUT_FORMAT("elf32-i386-freebsd", "elf32-i386-freebsd", "elf32-i386-freebsd")
+OUTPUT_ARCH(i386)
+ENTRY(_start)
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = 0;
+ ImageBase = .;
+ . = SIZEOF_HEADERS;
+ . = ALIGN(4096);
+ .text : {
+ *(.text .stub .text.* .gnu.linkonce.t.*)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ *(.plt)
+ } =0x00300000010070000002000001000400
+ . = ALIGN(4096);
+ .data : {
+ *(.rodata .rodata.* .gnu.linkonce.r.*)
+ *(.rodata1)
+ *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
+ *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
+ *(.opd)
+ *(.data .data.* .gnu.linkonce.d.*)
+ *(.data1)
+ *(.plabel)
+ *(.dynbss)
+ *(.bss .bss.* .gnu.linkonce.b.*)
+ *(COMMON)
+ }
+ . = ALIGN(4096);
+ set_Xcommand_set : {
+ __start_set_Xcommand_set = .;
+ *(set_Xcommand_set)
+ __stop_set_Xcommand_set = .;
+ }
+ . = ALIGN(4096);
+ __gp = .;
+ .sdata : {
+ *(.got.plt .got)
+ *(.sdata .sdata.* .gnu.linkonce.s.*)
+ *(dynsbss)
+ *(.sbss .sbss.* .gnu.linkonce.sb.*)
+ *(.scommon)
+ }
+ . = ALIGN(4096);
+ .dynamic : { *(.dynamic) }
+ . = ALIGN(4096);
+ .rel.dyn : {
+ *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
+ *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
+ *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
+ *(.rel.got)
+ *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
+ *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
+ *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
+ *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
+ *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
+ *(.rel.plt)
+ *(.relset_*)
+ *(.rel.dyn .rel.dyn.*)
+ }
+ . = ALIGN(4096);
+ .reloc : { *(.reloc) }
+ . = ALIGN(4096);
+ .hash : { *(.hash) }
+ . = ALIGN(4096);
+ .dynsym : { *(.dynsym) }
+ . = ALIGN(4096);
+ .dynstr : { *(.dynstr) }
+}
Modified: soc2012/emc2/head/sys/boot/i386/efi/Makefile
==============================================================================
--- soc2012/emc2/head/sys/boot/i386/efi/Makefile Thu May 31 14:51:21 2012 (r236815)
+++ soc2012/emc2/head/sys/boot/i386/efi/Makefile Thu May 31 14:56:20 2012 (r236816)
@@ -22,14 +22,15 @@
CFLAGS+= -I.
LIBFICL= ${.OBJDIR}/../../ficl/libficl.a
-.if ${MACHINE_CPUARCH} == "amd64"
+.if ${TARGET_ARCH} == "amd64"
SRCS+= elf64_freebsd.c
EFIFORMAT= efi-app-x86_64
-.elif ${MACHINE_CPUARCH} == "i386"
+.error Compiling for amd64!
+.elif ${TARGET_ARCH} == "i386"
SRCS+= elf32_freebsd.c
EFIFORMAT= efi-app-ia32
.else
-.error "MACHINE_CPUARCH is ${MACHINE_CPUARCH} (not amd64 or i386)"
+.error "TARGET_ARCH is ${MACHINE_CPUARCH} (not amd64 or i386)"
.endif
# Include bcache code.
HAVE_BCACHE= yes
More information about the svn-soc-all
mailing list