<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/Makefile.housekeeping, branch v1.20.1</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/Makefile.housekeeping?h=v1.20.1</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/Makefile.housekeeping?h=v1.20.1'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2019-08-02T10:00:43+00:00</updated>
<entry>
<title>[build] Move predefined all-drivers build shortcut to Makefile</title>
<updated>2019-08-02T10:00:43+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2019-08-02T10:00:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c742c576d0d0fc7f7d49825f5d3c53fd7b597327'/>
<id>urn:sha1:c742c576d0d0fc7f7d49825f5d3c53fd7b597327</id>
<content type='text'>
The (very approximate) split between Makefile.housekeeping and
Makefile is that the former provides mechanism and the latter provides
policy.

Provide a section within Makefile as a home for predefined build
shortcuts such as the existing all-drivers build.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Do not apply WORKAROUND_CFLAGS for host compiler</title>
<updated>2019-07-22T13:51:28+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2019-07-22T13:51:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a4f8c6e31f6c62522cfc633bbbffa81b22f9d6f3'/>
<id>urn:sha1:a4f8c6e31f6c62522cfc633bbbffa81b22f9d6f3</id>
<content type='text'>
The WORKAROUND_CFLAGS list is constructed based on running tests on
the target compiler, and the results may not be valid for the host
compiler.

The only relevant workaround required for the host compiler is
-Wno-stringop-truncation, which is needed to avoid a spurious compiler
warning for a totally correct usage of strncpy() in util/elf2efi.c.

Duplicating the workaround tests for the host compiler is messy, as is
conditionally applying __attribute__((nonstring)).  Fix instead by
disapplying WORKAROUND_CFLAGS for the host compiler, and using
memcpy() with an explicitly calculated length instead of strncpy() in
util/elf2efi.c.

Reported-by: Ignat Korchagin &lt;ignat@cloudflare.com&gt;
Reported-by: Christopher Clark &lt;christopher.w.clark@gmail.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Workaround compilation error with gcc 9.1</title>
<updated>2019-07-22T10:07:13+00:00</updated>
<author>
<name>Valentine Barshak</name>
</author>
<published>2019-07-22T09:47:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1dd56dbd11082fb622c2ed21cfaced4f47d798a6'/>
<id>urn:sha1:1dd56dbd11082fb622c2ed21cfaced4f47d798a6</id>
<content type='text'>
Compiling with gcc 9.1 generates lots of "taking address of packed
member of ... may result in an unaligned pointer value" warnings.

Some of these warnings are genuine, and indicate correctly that parts
of iPXE currently require the CPU (or runtime environment) to support
unaligned accesses.  For example: the TCP/IP receive data path will
attempt to access 32-bit fields that may not be aligned to a 32-bit
boundary.

Other warnings are either spurious (such as when the pointer is to a
variable-length byte array, which can have no alignment requirement
anyway) or unhelpful (such as when the pointer is used solely to
provide a debug colour value for the DBGC() macro).

There appears to be no easy way to silence the spurious warnings.
Since the ability to perform unaligned accesses is already a
requirement for iPXE, work around the problem by silencing this class
of warnings.

Signed-off-by: Valentine Barshak &lt;gvaxon@gmail.com&gt;
Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Use positive-form tests when checking for supported warnings</title>
<updated>2018-07-08T17:17:18+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-07-08T17:12:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1c47eb186e7e38bde2a1db528cc3557b1b300386'/>
<id>urn:sha1:1c47eb186e7e38bde2a1db528cc3557b1b300386</id>
<content type='text'>
Some versions of gcc seem to silently accept an attempt to disable an
unrecognised warning (e.g. via -Wno-stringop-truncation) but will then
report the unrecognised warning if any other error occurs during the
build, resulting in a potentially misleading error message.

Avoid this potential confusion by using the positive-form tests in
order to determine the workaround CFLAGS.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Disable gcc stringop-truncation warnings</title>
<updated>2018-07-07T18:46:16+00:00</updated>
<author>
<name>Bruce Rogers</name>
</author>
<published>2018-04-24T14:47:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8ed4e3049f5fcb3a0b32f5190940e78c61654cff'/>
<id>urn:sha1:8ed4e3049f5fcb3a0b32f5190940e78c61654cff</id>
<content type='text'>
The gcc 8 compiler introduces a warning for certain string
manipulation functions, flagging usages which _may_ not be intended.
An audit of the iPXE sources indicates all usages of strncat and
strncpy are as intended, so the warnings currently issued are not
helpful, especially if warnings are considered errors.

Fix by detecting gcc's support for -Wno-stringop-truncation and, if
detected, using that option to avoid the warning.

Signed-off-by: Bruce Rogers &lt;brogers@suse.com&gt;
Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Also-fixed-by: Christian Hesse &lt;list@eworm.de&gt;
Also-fixed-by: Roman Kagan &lt;rkagan@virtuozzo.com&gt;
Also-fixed-by: Bernhard M. Wiedemann &lt;bwiedemann@suse.de&gt;
Also-fixed-by: Olaf Hering &lt;olaf@aepfle.de&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Exclude selected directories from Secure Boot builds</title>
<updated>2017-09-18T13:38:12+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-09-18T12:32:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7428ab7258e03ddef79ba774432b7b8c11cc2730'/>
<id>urn:sha1:7428ab7258e03ddef79ba774432b7b8c11cc2730</id>
<content type='text'>
When submitting binaries for UEFI Secure Boot signing, certain
known-dubious subsystems (such as 802.11 and NFS) must be excluded
from the build.  Mark the directories containing these subsystems as
insecure, and allow the build target to include an explicit "security
flag" (a literal "-sb" appended to the build platform) to exclude
these source directories from the build process.

For example:

  make bin-x86_64-efi-sb/ipxe.efi

will build iPXE with all code from the 802.11 and NFS subsystems
excluded from the build.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[profile] Allow profiling to be globally enabled or disabled</title>
<updated>2016-07-05T12:49:51+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-07-05T12:45:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5430465185ba037c1f9c06cd3ec486b56dafb539'/>
<id>urn:sha1:5430465185ba037c1f9c06cd3ec486b56dafb539</id>
<content type='text'>
As with assertions, profiling is enabled for objects built with any
debug level (including an explicit debug level of zero).

Allow profiling to be globally enabled or disabled by adding PROFILE=1
or PROFILE=0 respectively to the build command line.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Allow assertions to be globally enabled or disabled</title>
<updated>2016-07-05T12:28:51+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-07-05T12:28:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=46719f2264fc63deaa712f4dc164d3b33c66e05f'/>
<id>urn:sha1:46719f2264fc63deaa712f4dc164d3b33c66e05f</id>
<content type='text'>
Assertions are enabled for objects built with any debug level
(including an explicit debug level of zero).  It is sometimes useful
to be able to enable assertions across all objects; this currently
requires manually hacking include/assert.h.

Allow assertions to be globally enabled by adding ASSERT=1 to the
build command line.  For example:

  make bin/8086100e.mrom ASSERT=1

Similarly, allow assertions to be globally disabled by adding ASSERT=0
to the build command line.  If no ASSERT=... is specified on the
build command line, then only objects mentioned in DEBUG=... will have
assertions enabled (as is currently the case).

Note than globally enabling assertions imposes a relatively heavy
runtime penalty, primarily due to the various sanity checks performed
by list_add(), list_for_each_entry(), etc.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[debug] Allow debug messages to be initially disabled at runtime</title>
<updated>2016-07-05T11:34:15+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-07-05T09:19:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6e1ce52d146fe8197c1b58e2e3b0ebcf9ccda349'/>
<id>urn:sha1:6e1ce52d146fe8197c1b58e2e3b0ebcf9ccda349</id>
<content type='text'>
Extend the DEBUG=... syntax to allow debug messages to be compiled in
but disabled by default.  For example:

  make bin/undionly.kpxe DEBUG=netdevice:3:1

would compile in the messages as for DEBUG=netdevice:3, but would set
the debug level mask so that only the DEBUG=netdevice:1 messages would
be displayed.

This allows for external code to selectively enable the additional
debug messages at runtime, without being overwhelmed by unwanted
initial noise.  For example, a developer of a new protocol may want to
temporarily enable tracing of all packets received: this can be done
by building with DEBUG=netdevice:3:1 and using

  // temporarily enable per-packet messages
  DBG_ENABLE_OBJECT ( netdevice, DBGLVL_EXTRA );
  ...
  // disable per-packet messages
  DBG_DISABLE_OBJECT ( netdevice, DBGLVL_EXTRA );

Note that unlike the usual DBG_ENABLE() and DBG_DISABLE() macros,
DBG_ENABLE_OBJECT() and DBG_DISABLE_OBJECT() will not be removed via
dead code elimination if debugging is disabled in the specified
object.  In particular, this means that using either of these macros
will always result in a symbol reference to the specified object.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Remove unnecessary dependency on zlib</title>
<updated>2016-05-02T22:09:49+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-05-02T22:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9f91df422b9ec7f1db493ea2fe333d8e609b58f9'/>
<id>urn:sha1:9f91df422b9ec7f1db493ea2fe333d8e609b58f9</id>
<content type='text'>
The dependency on zlib seems to have been introduced in commit 3dd7ce1
("[efi] Allow building with non-system libbfd") as an indirect
requirement of either libbfd or libiberty when building on Mac OS X.
Since we no longer use either of these libraries, remove the
unnecessary link against zlib.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
