Hi Rich
First of all thank you for the
work your doing with the musl C library. Fantastic.
Compared to others I'm quite new
to Linux but even I see, that there's far too much bloated software
around.
Looking at some projects - e.g. GCC (GNU Compiler Collection) - I see
black for the programmer's future. At some point it will become
unmaintainable, if it isn't already...
I think that what you are doing
with the C library is essential for the future of Linux and other open
source OS's and should be done with most other software around today...
Keep up the work!
At the moment I'm trying to get my
homeserver project running. First I went with Alpine Linux but ran into
some - at least for me at that point - unsolvable problems.
So I decided to give the Linux
from Scratch idea another chance. A year back I already tried to build a
musl toolchain from scratch but failed due to lack of knowledge and
time...
This time it looks like I'm
getting it done - but we'll see. ;-)
During bootstrapping and compiling
the first parts of the toolchain against musl I noticed two things.
Maybe they're already known to you...
(A search function for the mailing
list would be a nice thing...)
First: Compiling GCC 5.2.0 (and also 4.9.3) with musl 1.1.11 toolchain I
get a lot of warnings about missing sentinels in function calls.
Compiling GCC (same versions) with glibc toolchain there's no such
warning at all.
Replacing the function call
sentinels 'NULL' with '(char *)NULL' in the affected source code of GCC
makes the warnings disappear.
My question: Does the reason for these warnings have some impact on the
health of the toolchain (is there something wrong?) or are they just a
byproduct of the correctness and standards-conformance of musl?
Second: Compiling with a musl
1.1.11, GCC 5.2.0 (and 4.9.3), Binutils 2.25.1 toolchain I get the
following info (warning) over an over again:
...ld: copy reloc against
protected `stdout' is dangerous
...ld: copy reloc against protected `stdin' is dangerous
...ld: copy reloc against protected `stderr' is dangerous
Same can be seen in Alpine Linux
build logs: e.g.
http://build.alpinelinux.org/buildlogs/build-edge-x86_64/main/patchutils/patchutils-0.3.4-r0.log
Reason for these "warnings" seems
to be a change in the linker from binutils version 2.25 to 2.25.1.
Lines 2677 to 2680 in
'binutils-2.25.1/bfd/elflink.c' are new and in my opinion the source of
the issued warning.
My C knowledge is minimal but as
far as I can tell this means that the problem - if there is one at all -
was already there before binutils version 2.25.1, the linker just did
not print the "warning".
I haven't seen this warning before using glibc. So i guess it has to be
musl-related.
What do you think? Is there a problem or can I ignore these warnings?
Some additional info:
I'm building on x86_64 for x86_64 using Alpine Linux 3.2.3 as host.
Thank you for the help - much appreciated.
Ruben Winistörfer