<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/pepe2k/include/package.mk, branch master</title>
<subtitle>Staging tree of Piotr Dymacz</subtitle>
<id>https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/atom?h=master</id>
<link rel='self' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/'/>
<updated>2024-07-08T06:49:42Z</updated>
<entry>
<title>build: add support for PKG_SUBDIRS variable</title>
<updated>2024-07-08T06:49:42Z</updated>
<author>
<name>Michael Pratt</name>
</author>
<published>2024-06-20T04:23:39Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=3de19697fdd5baee3df9c67fdec48fe48e673894'/>
<id>urn:sha1:3de19697fdd5baee3df9c67fdec48fe48e673894</id>
<content type='text'>
Add support for overriding the SUBDIRS variable while invoking Make
by defining it after Make in the command line.

This is useful for builds that have previously patched out
the building of certain subdirectories in projects
that use recursive and independent Makefiles,
for example, to block the building of docs or test suites.

The wildcard function is used in the case of there being
subdirectories within any of the subdirectories,
for example, in the building of gengetopt,
in order to avoid the problem where Make will attempt
to execute a Makefile in a subdirectory that does not exist
within the subdirectory it is currently running from
because it really exists at the top-level, or one that exists
within one of the subdirectories when ran from top-level.
There are also cases where the Makefiles in the subdirectories
have the recursive building rules even though there are no more
subdirectories beyond that point, for example, with gnulib.

Signed-off-by: Michael Pratt &lt;mcpratt@pm.me&gt;
Link: https://github.com/openwrt/openwrt/pull/15853
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>build: add APK package build capabilities</title>
<updated>2024-05-17T20:21:26Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2024-05-14T10:36:59Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=d788ab376f859164df84e2054cbbbb0921943c5b'/>
<id>urn:sha1:d788ab376f859164df84e2054cbbbb0921943c5b</id>
<content type='text'>
A new option called `USE_APK` is added which generated APK packages
(.apk) instead of OPKG packages (.ipk).

Some features like fstools `snapshot` command are not yet ported

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>build: add support to use the mold linker for packages</title>
<updated>2023-07-04T18:25:41Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-01-27T15:35:46Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=32ed9764462ae04fad5809f857450d4f606ac4c0'/>
<id>urn:sha1:32ed9764462ae04fad5809f857450d4f606ac4c0</id>
<content type='text'>
If CONFIG_USE_MOLD is set, all target packages will use the mold linker.
Except the ones which opted-out via setting PKG_BUILD_FLAGS:=no-mold.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>treewide: opt-out of tree-wide mold usage</title>
<updated>2023-07-04T18:25:41Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-01-27T17:22:43Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=42ef375cb658d2de0d44a8b1da4df939341b6021'/>
<id>urn:sha1:42ef375cb658d2de0d44a8b1da4df939341b6021</id>
<content type='text'>
These use linker scripts, which mold doesn't support.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>build: export GIT_CEILING_DIRECTORIES for package builds</title>
<updated>2023-05-31T17:33:00Z</updated>
<author>
<name>Jeffery To</name>
</author>
<published>2023-05-31T13:58:34Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=f597f34f3afa7bba8a2606490617688f1cea5a44'/>
<id>urn:sha1:f597f34f3afa7bba8a2606490617688f1cea5a44</id>
<content type='text'>
A package may run git as part of its build process, and if the package
source code is not from a git checkout, then git may traverse up the
directory tree to find buildroot's repository directory (.git).

For instance, Poetry Core, a Python build backend, will read the
contents of .gitignore for paths to exclude when creating a Python
package. If it finds buildroot's .gitignore file, then Poetry Core will
exclude all of the package's files[1].

This exports GIT_CEILING_DIRECTORIES for both package and host builds so
that git will not traverse beyond $(BUILD_DIR)/$(BUILD_DIR_HOST).

[1]: https://github.com/python-poetry/poetry/issues/5547

Signed-off-by: Jeffery To &lt;jeffery.to@gmail.com&gt;
</content>
</entry>
<entry>
<title>build: remove backwards compatibility for PKG_USE_MIPS16</title>
<updated>2023-05-12T11:06:14Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-03-23T09:13:43Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=d440ebb2a80b8ac98d7f5d6025b7946ab824b084'/>
<id>urn:sha1:d440ebb2a80b8ac98d7f5d6025b7946ab824b084</id>
<content type='text'>
All package feeds have been refactored to PKG_BUILD_FLAGS:=no-mips16.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>build: add a config knob to enable LTO for all packages</title>
<updated>2023-03-21T17:28:24Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-01-28T14:24:37Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=9ea7019ffd60ab3ef5a5654116fbc339f856482c'/>
<id>urn:sha1:9ea7019ffd60ab3ef5a5654116fbc339f856482c</id>
<content type='text'>
This enables LTO for all packages which haven't opted-out.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>build: add a config knob to enable gc-sections for all packages</title>
<updated>2023-03-21T17:28:23Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-02-03T12:15:43Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=aef8bab9d71d85dcb6d99ff70078be3f2bdfbf61'/>
<id>urn:sha1:aef8bab9d71d85dcb6d99ff70078be3f2bdfbf61</id>
<content type='text'>
This enables the linker's garbage collection for all packages which haven't
opted-out.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>treewide: add support for "lto" in PKG_BUILD_FLAGS</title>
<updated>2023-03-21T17:28:22Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-02-02T20:33:38Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=07730ff3465d3cede3026cdd1c17453930f055ce'/>
<id>urn:sha1:07730ff3465d3cede3026cdd1c17453930f055ce</id>
<content type='text'>
This reduces open coding and allows to easily add a knob to enable
it treewide, where chosen packages can still opt-out via "no-lto".

Some packages used LTO, but not the linker plugin. This unifies 'em
all to attempt to produce better code.
Quoting man gcc(1):
"This improves the quality of optimization by exposing more code to the
link-time optimizer."

Also use -flto=auto instead of -flto=jobserver, as it's not guaranteed
that every buildsystem uses +$(MAKE) correctly.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>treewide: add support for "gc-sections" in PKG_BUILD_FLAGS</title>
<updated>2023-03-21T17:28:22Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-02-02T20:16:21Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/pepe2k/commit/?id=da3700988d9e34e380bae21ee23d5458a7e972b4'/>
<id>urn:sha1:da3700988d9e34e380bae21ee23d5458a7e972b4</id>
<content type='text'>
This reduces open coding and allows to easily add a knob to
enable it treewide, where chosen packages can still opt-out via
"no-gc-sections".

Note: libnl, mbedtls and opkg only used the CFLAGS part without the
LDFLAGS counterpart. That doesn't help at all if the goal is to produce
smaller binaries. I consider that an accident, and this fixes it.

Note: there are also packages using only the LDFLAGS part. I didn't
touch those, as gc might have been disabled via CFLAGS intentionally.

Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
</feed>
