Fwd: [robh:dt/next 2/2] fdt_ro.c:undefined reference to `strnlen'

Started by Nicolas Pitre on Jan 26, 2016 · 2 messages from 2 authors · Last reply Jan 26, 2016

open the first message on its own page

On Tue, 26 Jan 2016, Rob Herring wrote:
With the latest dtc I've imported to the kernel, there is a new
dependency on strnlen. This is giving the ARM decompressor an error. I
have a couple of ideas on how to fix it:

- Move string related functions in dtc to separate file
- Add lib/string.c to the decompressor build
- Build the decompressor with function-sections to discard the string
related functions and avoid the linker error. Also, there's probably a
bit of other unused code that would get dropped. function-sections
doesn't work for the kernel in general, but may for the decompressor.
Nico may know.
Use of function-sections turns out to be more involved than I wish. And 
we've put many special restrictions on the decompressor already. And 
linking dtc (only part of it actually) into the decompressor is only for 
legacy stuff and I'd prefer we don't spend too much time on legacy 
stuff.  Yadda yadda.

So instead I'd simply paste a simple implementation of strnlen into 
arch/arm/boot/compressed/string.c and be done with it.  The one in 
lib/string.c looks dead simple for what it's worth.
- Don't update dtc and take the rest of the day off.
That is always an option.  Does it really need to be updated?  ;-)


Nicolas
On Tue, Jan 26, 2016 at 04:52:18PM -0500, Nicolas Pitre wrote:
On Tue, 26 Jan 2016, Rob Herring wrote:
quoted
With the latest dtc I've imported to the kernel, there is a new
dependency on strnlen. This is giving the ARM decompressor an error. I
have a couple of ideas on how to fix it:

- Move string related functions in dtc to separate file
- Add lib/string.c to the decompressor build
- Build the decompressor with function-sections to discard the string
related functions and avoid the linker error. Also, there's probably a
bit of other unused code that would get dropped. function-sections
doesn't work for the kernel in general, but may for the decompressor.
Nico may know.
Use of function-sections turns out to be more involved than I wish. And 
we've put many special restrictions on the decompressor already. And 
linking dtc (only part of it actually) into the decompressor is only for 
legacy stuff and I'd prefer we don't spend too much time on legacy 
stuff.  Yadda yadda.

So instead I'd simply paste a simple implementation of strnlen into 
arch/arm/boot/compressed/string.c and be done with it.  The one in 
lib/string.c looks dead simple for what it's worth.
I think that would be my preferred option too.
quoted
- Don't update dtc and take the rest of the day off.
That is always an option.  Does it really need to be updated?  ;-)


Nicolas
-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160127/52124933/attachment.sig>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help