<feed xmlns='http://www.w3.org/2005/Atom'>
<title>forks/busybox/scripts/trylink, branch master</title>
<subtitle>Busybox tree with Carbs Linux patches
</subtitle>
<id>https://git.carbslinux.org/forks/busybox/atom?h=master</id>
<link rel='self' href='https://git.carbslinux.org/forks/busybox/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/'/>
<updated>2021-02-23T22:09:49+00:00</updated>
<entry>
<title>trylink: do not drop libs from CONFIG_EXTRA_LDLIBS</title>
<updated>2021-02-23T22:09:49+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-02-23T22:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=1f9ed02caffb269e5fc6fbdf19fc9ba05a79e628'/>
<id>urn:sha1:1f9ed02caffb269e5fc6fbdf19fc9ba05a79e628</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>build system: remove KBUILD_STR()</title>
<updated>2020-04-29T12:52:19+00:00</updated>
<author>
<name>Jean-Philippe Brucker</name>
<email>jean-philippe@linaro.org</email>
</author>
<published>2020-03-12T16:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=ed8af51b600fd16d22c6663a241547c3a9d7f2b4'/>
<id>urn:sha1:ed8af51b600fd16d22c6663a241547c3a9d7f2b4</id>
<content type='text'>
When using GNU Make &gt;=4.3, the KBUILD_STR() definition interferes badly
with dependency checks during build, and forces a complete rebuild every
time Make runs.

In if_changed_rule, Kconfig checks if the command used to build a file
has changed since last execution. The previous command is stored in the
generated .&lt;file&gt;.o.cmd file. For example applets/.applets.o.cmd defines
a "cmd_applets/applets.o" variable:

	cmd_applets/applets.o := gcc ... -D"KBUILD_STR(s)=#s" ...

Here the '#' should be escaped with a backslash, otherwise GNU Make
interprets it as starting a comment, and ignore the rest of the
variable. As a result of this truncation, the previous command doesn't
equal the new command and Make rebuilds each target.

The problem started to appear when GNU Make 4.3 (released January 2020),
introduced a backward-incompatible fix to macros containing a '#'. While
the above use of '#', a simple Make variable, still needs to be escaped,
a '#' within a function invocation doesn't need to be escaped anymore.
As Martin Dorey explained on the GNU Make discussion [1], the above
declaration is generated from make-cmd, defined as:

	make-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))

Since GNU Make 4.3, the first argument of subst should not have a
backslash. make-cmd now looks for literally \# and doesn't find it, and
as a result doesn't add the backslash when generating .o.cmd files.

[1] http://savannah.gnu.org/bugs/?20513

We could fix it by changing make-cmd to "$(subst #,\#,...)", but to
avoid compatibility headaches, simply get rid of the KBUILD_STR
definition, as done in Linux by b42841b7bb62 ("kbuild: Get rid of
KBUILD_STR"). Quote the string arguments directly rather than asking the
preprocessor to quote them.

Signed-off-by: Jean-Philippe Brucker &lt;jean-philippe@linaro.org&gt;
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>scripts/trylink: be more clever when deciding that "lib elimination" has finished:</title>
<updated>2018-11-19T19:36:16+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2018-11-19T19:36:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=32511da87ddaea0824801eafebd27e11409bf444'/>
<id>urn:sha1:32511da87ddaea0824801eafebd27e11409bf444</id>
<content type='text'>
Before:
Trying libraries: crypt m resolv
 Library crypt is not needed, excluding it
 Library m is needed, can't exclude it (yet)
 Library resolv is needed, can't exclude it (yet)
 Library m is needed, can't exclude it (yet)
 Library resolv is needed, can't exclude it (yet)
Final link with: m resolv

After:
Trying libraries: crypt m resolv
 Library crypt is not needed, excluding it
 Library m is needed, can't exclude it (yet)
 Library resolv is needed, can't exclude it (yet)
Final link with: m resolv

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>build system: FEATURE_LIBBUSYBOX_STATIC - try to pull libc/libm into libbusybox</title>
<updated>2017-07-15T12:52:26+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2017-07-15T12:52:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=367a55c7d7e31a8162e795edc343277f8eb35f38'/>
<id>urn:sha1:367a55c7d7e31a8162e795edc343277f8eb35f38</id>
<content type='text'>
It variously fails with different toolchains I tried...

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>remove "local" bashism from a few scripts</title>
<updated>2017-01-24T19:52:42+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2017-01-24T19:52:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=bca4ea8b68403e6f751341b82c65937f14590679'/>
<id>urn:sha1:bca4ea8b68403e6f751341b82c65937f14590679</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>trylink: use "mktemp tmp.XXXXXXXXXX" to placate OS X</title>
<updated>2016-07-12T11:54:35+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2016-07-12T11:54:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=2ae86ad1c64b4de9bb63464d9a783229ed8e5dd0'/>
<id>urn:sha1:2ae86ad1c64b4de9bb63464d9a783229ed8e5dd0</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>scripts/trylink: libbusybox fix</title>
<updated>2016-06-20T10:23:35+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2016-06-20T10:23:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=ea9ebc011b3ee9b86b00646b91e73bb860d340b4'/>
<id>urn:sha1:ea9ebc011b3ee9b86b00646b91e73bb860d340b4</id>
<content type='text'>
gcc 6.1.1 can emit empty line with spaces

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>scripts/trylink: document DATA_SEGMENT_ALIGN() hack</title>
<updated>2016-04-22T00:00:04+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2016-04-22T00:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=663d1da1e68b15397c00d6a094f78c2cf08358ea'/>
<id>urn:sha1:663d1da1e68b15397c00d6a094f78c2cf08358ea</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>trylink: on failure, print a hint about CONFIG_EXTRA_LDLIBS</title>
<updated>2016-04-03T13:38:53+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2016-04-03T13:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=056e1f558cc8bc22f221b49bf4571aed59cdae09'/>
<id>urn:sha1:056e1f558cc8bc22f221b49bf4571aed59cdae09</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>trylink: include LDFLAGS when checking linkage</title>
<updated>2015-12-01T16:25:10+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>vapier@gentoo.org</email>
</author>
<published>2015-12-01T16:25:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.carbslinux.org/forks/busybox/commit/?id=77e2bde6a50f0f6b9b3c9983c86e661a9872b5f6'/>
<id>urn:sha1:77e2bde6a50f0f6b9b3c9983c86e661a9872b5f6</id>
<content type='text'>
The user might be including options in their LDFLAGS (like -fuse-ld=gold)
that change the behavior of the linker and thus change the results of the
flag tests.  Make sure we include the user's LDFLAGS when running these
tests so we filter out flags that will fail when used later on.

URL: https://bugs.gentoo.org/499712
Signed-off-by: Mike Frysinger &lt;vapier@gentoo.org&gt;
</content>
</entry>
</feed>
