Discussion:
Announcing meta-musl OE/Yocto layer supporting musl C library
Khem Raj
2014-08-17 00:50:38 UTC
Permalink
Hello All

musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at

https://github.com/kraj/meta-musl

README describes way to get going with it.

Few things to note

* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64

I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well

If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....

Happy hacking

-Khem
Diego Sueiro
2014-08-17 11:50:38 UTC
Permalink
Wow!!!!

This is a really great job. Nice work.

I'm gonna test it.


Regards,

--
*dS
Diego Sueiro

Administrador do Embarcados
www.embarcados.com.br
<http://www.embarcados.com.br/?utm_source=assinatura_diego&utm_medium=e-mail&utm_campaign=Assinatura%20Email%20Diego>

/*long live rock 'n roll*/
Post by Khem Raj
Hello All
musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at
https://github.com/kraj/meta-musl
README describes way to get going with it.
Few things to note
* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64
I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well
If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....
Happy hacking
-Khem
--
_______________________________________________
Openembedded-core mailing list
http://lists.openembedded.org/mailman/listinfo/openembedded-core
atulkumar singh
2014-08-17 12:36:03 UTC
Permalink
Hi Khem,

It's really something new to test.
And as it's mention that will support only for core-image-minimal, so when
can i expect it to support for meta-toolchain.
As of now i will test it for core-image-minimal but i need it for
meta-toolchain as well.
So please update me regarding the same and in the meanwhile will test and
update for core-image-minimal in case found any issue.
I am really excited to test the same.

Thanks and regards,
Atul
Post by Khem Raj
Hello All
musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at
https://github.com/kraj/meta-musl
README describes way to get going with it.
Few things to note
* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64
I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well
If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....
Happy hacking
-Khem
--
_______________________________________________
Openembedded-core mailing list
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Paul Barker
2014-08-18 18:14:24 UTC
Permalink
Post by Khem Raj
Hello All
musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at
https://github.com/kraj/meta-musl
README describes way to get going with it.
Few things to note
* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64
I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well
If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....
Happy hacking
core-image-minimal works with my configuration on qemuarm. It also successfully
builds what will soon be released as opkg-0.2.3 and the recipe for toybox-0.4.9
which I've recently created.

I tried building core-image-full-cmdline as I think that would be good next step
from core-image-minimal. I'm seeing failures in:

meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb, do_compile
meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb, do_compile
meta/recipes-extended/libtirpc/libtirpc_0.2.4.bb, do_compile
meta/recipes-extended/iptables/iptables_1.4.21.bb, do_compile
meta/recipes-connectivity/nfs-utils/libnfsidmap_0.25.bb, do_compile
meta/recipes-devtools/perl/perl_5.20.0.bb, do_compile
meta/recipes-extended/sysklogd/sysklogd_1.5.bb, do_compile
meta/recipes-extended/ethtool/ethtool_3.14.bb, do_compile
meta/recipes-extended/psmisc/psmisc_22.21.bb, do_compile
meta/recipes-extended/pax/pax_3.4.bb, do_compile
meta/recipes-extended/procps/procps_3.2.8.bb, do_compile
meta/recipes-extended/net-tools/net-tools_1.60-25.bb, do_compile
meta/recipes-extended/findutils/findutils_4.4.2.bb, do_compile
meta/recipes-extended/logrotate/logrotate_3.8.7.bb, do_compile
meta/recipes-extended/cronie/cronie_1.4.11.bb, do_compile
meta/recipes-devtools/elfutils/elfutils_0.148.bb, do_compile
meta/recipes-extended/at/at_3.1.14.bb, do_compile
meta/recipes-extended/iputils/iputils_s20121221.bb, do_compile
meta/recipes-extended/gzip/gzip_1.6.bb, do_compile
meta/recipes-extended/sudo/sudo_1.8.10p3.bb, do_compile
meta/recipes-extended/mc/mc_4.8.12.bb, do_compile

I can share detailed logs if anyone wants them. I'll have a look and see if I
can find some low hanging fruit amongst these which are easy to fix.

Thanks,
--
Paul Barker

Email: paul-/Pkq+***@public.gmane.org
http://www.paulbarker.me.uk
Khem Raj
2014-08-18 18:26:26 UTC
Permalink
Post by Paul Barker
Post by Khem Raj
Hello All
musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at
https://github.com/kraj/meta-musl
README describes way to get going with it.
Few things to note
* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64
I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well
If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....
Happy hacking
core-image-minimal works with my configuration on qemuarm. It also successfully
builds what will soon be released as opkg-0.2.3 and the recipe for toybox-0.4.9
which I've recently created.
I tried building core-image-full-cmdline as I think that would be good next step
meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb, do_compile
meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb, do_compile
meta/recipes-extended/libtirpc/libtirpc_0.2.4.bb, do_compile
meta/recipes-extended/iptables/iptables_1.4.21.bb, do_compile
meta/recipes-connectivity/nfs-utils/libnfsidmap_0.25.bb, do_compile
meta/recipes-devtools/perl/perl_5.20.0.bb, do_compile
meta/recipes-extended/sysklogd/sysklogd_1.5.bb, do_compile
meta/recipes-extended/ethtool/ethtool_3.14.bb, do_compile
meta/recipes-extended/psmisc/psmisc_22.21.bb, do_compile
meta/recipes-extended/pax/pax_3.4.bb, do_compile
meta/recipes-extended/procps/procps_3.2.8.bb, do_compile
meta/recipes-extended/net-tools/net-tools_1.60-25.bb, do_compile
meta/recipes-extended/findutils/findutils_4.4.2.bb, do_compile
meta/recipes-extended/logrotate/logrotate_3.8.7.bb, do_compile
meta/recipes-extended/cronie/cronie_1.4.11.bb, do_compile
meta/recipes-devtools/elfutils/elfutils_0.148.bb, do_compile
meta/recipes-extended/at/at_3.1.14.bb, do_compile
meta/recipes-extended/iputils/iputils_s20121221.bb, do_compile
meta/recipes-extended/gzip/gzip_1.6.bb, do_compile
meta/recipes-extended/sudo/sudo_1.8.10p3.bb, do_compile
meta/recipes-extended/mc/mc_4.8.12.bb, do_compile
I can share detailed logs if anyone wants them. I'll have a look and see if I
can find some low hanging fruit amongst these which are easy to fix.
Thanks cool. Can you open a ticket on github with this information ?
Paul Barker
2014-08-18 18:50:09 UTC
Permalink
Post by Khem Raj
Post by Paul Barker
Post by Khem Raj
Hello All
musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at
https://github.com/kraj/meta-musl
README describes way to get going with it.
Few things to note
* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64
I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well
If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....
Happy hacking
core-image-minimal works with my configuration on qemuarm. It also successfully
builds what will soon be released as opkg-0.2.3 and the recipe for toybox-0.4.9
which I've recently created.
I tried building core-image-full-cmdline as I think that would be good next step
meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb, do_compile
meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb, do_compile
meta/recipes-extended/libtirpc/libtirpc_0.2.4.bb, do_compile
meta/recipes-extended/iptables/iptables_1.4.21.bb, do_compile
meta/recipes-connectivity/nfs-utils/libnfsidmap_0.25.bb, do_compile
meta/recipes-devtools/perl/perl_5.20.0.bb, do_compile
meta/recipes-extended/sysklogd/sysklogd_1.5.bb, do_compile
meta/recipes-extended/ethtool/ethtool_3.14.bb, do_compile
meta/recipes-extended/psmisc/psmisc_22.21.bb, do_compile
meta/recipes-extended/pax/pax_3.4.bb, do_compile
meta/recipes-extended/procps/procps_3.2.8.bb, do_compile
meta/recipes-extended/net-tools/net-tools_1.60-25.bb, do_compile
meta/recipes-extended/findutils/findutils_4.4.2.bb, do_compile
meta/recipes-extended/logrotate/logrotate_3.8.7.bb, do_compile
meta/recipes-extended/cronie/cronie_1.4.11.bb, do_compile
meta/recipes-devtools/elfutils/elfutils_0.148.bb, do_compile
meta/recipes-extended/at/at_3.1.14.bb, do_compile
meta/recipes-extended/iputils/iputils_s20121221.bb, do_compile
meta/recipes-extended/gzip/gzip_1.6.bb, do_compile
meta/recipes-extended/sudo/sudo_1.8.10p3.bb, do_compile
meta/recipes-extended/mc/mc_4.8.12.bb, do_compile
I can share detailed logs if anyone wants them. I'll have a look and see if I
can find some low hanging fruit amongst these which are easy to fix.
Thanks cool. Can you open a ticket on github with this information ?
Will do. Do you want just want one ticket or do you want to separate these into
one ticket per failing recipe or similar?

I've put the failing "log.do_compile" files into one directory which is 1.3MB
uncompressed or just 41kB compressed. I've posted them to:
http://www.paulbarker.me.uk/musl-error-logs_2014-08-18/
http://www.paulbarker.me.uk/musl-error-logs_2014-08-18/musl-error-logs_2014-08-18.tar.xz

Cheers,
--
Paul Barker

Email: paul-/Pkq+***@public.gmane.org
http://www.paulbarker.me.uk
Khem Raj
2014-08-18 19:04:54 UTC
Permalink
Post by Paul Barker
Post by Khem Raj
Post by Paul Barker
Post by Khem Raj
Hello All
musl <http://www.musl-libc.org/> is a newer implementation licensed
under MIT licence
A layer to support musl to supply your system C library as an
alternative to uclibc and eglibc/glibc is now available at
https://github.com/kraj/meta-musl
README describes way to get going with it.
Few things to note
* Supports gcc 4.9 in OE not 4.8
* Current musl recipe is 1.1.4 based
* You need latest master of OE-Core
(106305227003761c3fc562c21bb859a5256f2b36) or newer and
bitbake
* Its only able to build core-image-minimal
* core-image-minimal boots on qemuarm, qemuppc, qemumips, qemux86, qemux86-64
I will send a request to add it to layerindex soon and then you should
be able to find it using
layerindex.opernembedded.org as well
If you try it out on your hardware and/or have feedback I am
interested. Fork it from github, file bugs
send patches ....
Happy hacking
core-image-minimal works with my configuration on qemuarm. It also successfully
builds what will soon be released as opkg-0.2.3 and the recipe for toybox-0.4.9
which I've recently created.
I tried building core-image-full-cmdline as I think that would be good next step
meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb, do_compile
meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb, do_compile
meta/recipes-extended/libtirpc/libtirpc_0.2.4.bb, do_compile
meta/recipes-extended/iptables/iptables_1.4.21.bb, do_compile
meta/recipes-connectivity/nfs-utils/libnfsidmap_0.25.bb, do_compile
meta/recipes-devtools/perl/perl_5.20.0.bb, do_compile
meta/recipes-extended/sysklogd/sysklogd_1.5.bb, do_compile
meta/recipes-extended/ethtool/ethtool_3.14.bb, do_compile
meta/recipes-extended/psmisc/psmisc_22.21.bb, do_compile
meta/recipes-extended/pax/pax_3.4.bb, do_compile
meta/recipes-extended/procps/procps_3.2.8.bb, do_compile
meta/recipes-extended/net-tools/net-tools_1.60-25.bb, do_compile
meta/recipes-extended/findutils/findutils_4.4.2.bb, do_compile
meta/recipes-extended/logrotate/logrotate_3.8.7.bb, do_compile
meta/recipes-extended/cronie/cronie_1.4.11.bb, do_compile
meta/recipes-devtools/elfutils/elfutils_0.148.bb, do_compile
meta/recipes-extended/at/at_3.1.14.bb, do_compile
meta/recipes-extended/iputils/iputils_s20121221.bb, do_compile
meta/recipes-extended/gzip/gzip_1.6.bb, do_compile
meta/recipes-extended/sudo/sudo_1.8.10p3.bb, do_compile
meta/recipes-extended/mc/mc_4.8.12.bb, do_compile
I can share detailed logs if anyone wants them. I'll have a look and see if I
can find some low hanging fruit amongst these which are easy to fix.
Thanks cool. Can you open a ticket on github with this information ?
Will do. Do you want just want one ticket or do you want to separate these into
one ticket per failing recipe or similar?
That would be handy too. But I wanted was to keep this info in project
for folks to try it out.
Post by Paul Barker
I've put the failing "log.do_compile" files into one directory which is 1.3MB
http://www.paulbarker.me.uk/musl-error-logs_2014-08-18/
http://www.paulbarker.me.uk/musl-error-logs_2014-08-18/musl-error-logs_2014-08-18.tar.xz
Cheers,
--
Paul Barker
http://www.paulbarker.me.uk
Paul Barker
2014-08-18 19:08:14 UTC
Permalink
Post by Khem Raj
Post by Paul Barker
Post by Khem Raj
Thanks cool. Can you open a ticket on github with this information ?
Will do. Do you want just want one ticket or do you want to separate these into
one ticket per failing recipe or similar?
That would be handy too. But I wanted was to keep this info in project
for folks to try it out.
I'll just post one ticket for now.

I think I've got a fix for e2fsprogs as well.

Cheers,
--
Paul Barker

Email: paul-/Pkq+***@public.gmane.org
http://www.paulbarker.me.uk
Khem Raj
2014-08-18 19:14:08 UTC
Permalink
Post by Paul Barker
Post by Khem Raj
That would be handy too. But I wanted was to keep this info in project
for folks to try it out.
I'll just post one ticket for now.
Thats fine too.
Post by Paul Barker
I think I've got a fix for e2fsprogs as well.
Great. when we write patches that arise out of musl systems we should
make sure that

1. If patch fixes a genuine issue surfaced with musl, fight it out ar
respective package upstream and in OE universe add it to the original
layer where recipe primarily resides
but we can keep the patches in meta-musl as a last resort.

2. If its something musl specific then lets keep it in meta-musl and
see how musl can be changed to fix it.

Thanks
-Khem
Szabolcs Nagy
2014-08-18 20:17:17 UTC
Permalink
Post by Paul Barker
I've put the failing "log.do_compile" files into one directory which is 1.3MB
http://www.paulbarker.me.uk/musl-error-logs_2014-08-18/
http://www.paulbarker.me.uk/musl-error-logs_2014-08-18/musl-error-logs_2014-08-18.tar.xz
i looked at the logs

i think most of the issues already have fixes in alpinelinux or
sabotage, they should be pushed upstream if they are not there yet

common errors and recommended fixes:

findutils
gzip
old gnulib with broken freadahead, newer gnulib works with musl

libtirpc
pax
sys/cdefs.h, application should be fixed not to use it

logrotate
sys/queue.h, missing from musl, ship queue.h with app source

e2fsprogs
ethtool:
use of __uint64_t, __uint32_t (non-conforming, use standard types)
libnfsidmap
use of u_int32_t (without including sys/types.h)

procps
psmisc
undefined PATH_MAX (missing limits.h include)

mc:
undefined CTRL(x) (missing sys/ttydefaults.h include)
glibc includes sys/ttydefaults.h into termios.h, musl doesnt

cronie
undefined MAXNAMLEN, musl has it in sys/param.h

at
undefied __isleap
glibc time.h has # define __isleap(year) \
((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))

elfutils
error.h, musl does not have this

sysklogd
iptables
include incompatible linux headers (+ various other issues)
probably harder to fix

sudo:
the build command helpfully redirected the compiler output to /dev/null
Loading...