From owner-soc-status@FreeBSD.ORG Tue Jul 10 14:52:37 2012 Return-Path: Delivered-To: soc-status@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CCDE51065670 for ; Tue, 10 Jul 2012 14:52:37 +0000 (UTC) (envelope-from eric@shadowsun.net) Received: from mail.atlantawebhost.com (dns1.atlantawebhost.com [66.223.40.39]) by mx1.freebsd.org (Postfix) with ESMTP id 794488FC19 for ; Tue, 10 Jul 2012 14:52:37 +0000 (UTC) Received: (qmail 32266 invoked from network); 10 Jul 2012 10:52:31 -0400 Received: from c-71-192-38-198.hsd1.ma.comcast.net (HELO ?192.168.1.9?) (71.192.38.198) by mail.atlantawebhost.com with SMTP; 10 Jul 2012 10:52:31 -0400 Message-ID: <4FFC097C.1030704@shadowsun.net> Date: Tue, 10 Jul 2012 10:52:44 +0000 From: Eric McCorkle User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:13.0) Gecko/20120704 Thunderbird/13.0.1 MIME-Version: 1.0 To: "Andrey V. Elsukov" , soc-status@FreeBSD.org X-Enigmail-Version: 1.4.2 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig704BD332720D85C9D75F7171" Cc: Subject: Status report X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 14:52:37 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig704BD332720D85C9D75F7171 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I am back from traveling, and I managed to get quite a bit done in spite of it. I was able to identify the source of the remaining issues that were preventing loader.efi from running, and I was able to get the i386 version to run under the TianoCore EFI image on QEMU. The issues are as follows: * clang seems to result in bad jump offsets being generated in the final PE executable. GCC, on the other hand, does not. This means the EFI loader *must* be compiled with GCC for the time being. This was causing loader.efi to fail, as my system's make.conf is set to use clang for building world. * _reloc can only handle two kinds of relocations. More specifically, if it encounters the kinds of relocations that arise from undefined symbols, it will fail. Using a linker script and objcopy to generate PE executables will silently ignore undefined symbols (which is why the loader.efi Makefile checks explicitly for them). This was causing _reloc to fail in my experimental programs. However, at this point I am finally able to work directly on loader.efi. My current plans are to look at the contiguous memory allocation issue, and to document what I've learned about loader.efi and how it's created better. I am also curious as to why clang generates bad offsets. This certainly needs to be addressed at some point. --------------enig704BD332720D85C9D75F7171 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQIcBAEBAgAGBQJP/Al/AAoJENSCzbQ+koZ7+TsP/01ly9Bay4Zk5DEiGC9UbCMD YMxNncMkB8cDlBcTxzLzgu35+KkcnOtE7TUU/PPMXtay1sSpoT1XLd2QR0kJBVJ7 Ok8qYIUng3/fcc25FbVs3KarU/WoyplM08QvGr271zzD2HzoMHGGbP6nZJMFVfQH 1WzlqqaXL+T7NbtR4n+ESB1wVBgGyIn2+SvZD+eew1BWg3O7p79jX/hwqUlSH248 JsS0fNm36CPHvrN7bHbF5OAamc9r0BZWuWKME9xdy+QclQihrxOPzcRgrPaYM1TK 0wZ/la9b4WidBjcJyEGjfktazhFh9O5FM5tg6USpwSo+Q/ACkEnkJ2a2Ryv1vB8L PHQ/LN6Y/TiBMUzpHCxHJpNgcbHiOseZctdQzmJ7jvccocAPZXQP18+RjQdLMAzP u8J5jCILhfjcIUWgk8Wbt7jZRbtuX0eJN8v4XW+nBym0kRb15pNaTT+IO+cDSer2 8k7HaKwakgk4n/gwbR6QzVHvIsLE0nnCFRmnI0AKxxN2Du8taCteyZrg9I4Ud6u7 YQgnIPHnMjz7XVjUfdBHmCAo3k1nuZhD0VCobP7nyR2sdIryaLFtjKnRt2V4UArW q1K1uqZIpOTjwqrddJH+8D9cBqEdSWoRI0zkZoTSMYAuipBExEyNjq60mTLo5oEp 9UQ1vRetSnbwFED7l+ap =YDwB -----END PGP SIGNATURE----- --------------enig704BD332720D85C9D75F7171--