mailing list of musl libc
 help / color / mirror / code / Atom feed
* Latest pkgsrc results [What builds on musl 0.9.13?]
@ 2013-11-07  0:34 Gregor Richards
  2013-11-07  2:01 ` Szabolcs Nagy
  2013-11-07  4:50 ` Kurt H Maier
  0 siblings, 2 replies; 17+ messages in thread
From: Gregor Richards @ 2013-11-07  0:34 UTC (permalink / raw)
  To: musl

Here are the results from my latest build of NetBSD pkgsrc 2013Q2 on 
musl 0.9.13, with patches from 
http://bitbucket.org/GregorR/musl-pkgsrc-patches revision b44694ce2dd6.

Attempted:	11270
Deps failed:	3248
Build tried:	8022
Build failed:	912
Tests failed:	1824
Success:	5286 (65.8938%)

Breakdown:
https://sites.google.com/a/codu.org/musl/pkgsrc-results/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-breakdown.txt?attredirects=0&d=1 
or http://wiki.musl-libc.org/pkgsrc_results

Archive:
https://sites.google.com/a/codu.org/musl/pkgsrc-results/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13.tar.gz?attredirects=0&d=1


Notes:

In the breakdown, 'D' means dependencies, 'B' means build, 'T' means 
tests. Blank is success, 'X' is failure.

If you have patches to make other packages build, please report them on 
the musl-pkgsrc-patches issue tracker: 
https://bitbucket.org/GregorR/musl-pkgsrc-patches/issues .

As with all of my repositories, musl-pkgsrc-patches is also available 
via git, for people with masochistic VCS preferences: 
http://github.com/GregorR/musl-pkgsrc-patches .

If you reply to this email, please reply-all. I am not subscribed to 
this mailing list, as it has no digest option.

With valediction,
  - Gregor Richards



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07  0:34 Latest pkgsrc results [What builds on musl 0.9.13?] Gregor Richards
@ 2013-11-07  2:01 ` Szabolcs Nagy
  2013-11-07  2:22   ` Gregor Richards
  2013-11-07  4:50 ` Kurt H Maier
  1 sibling, 1 reply; 17+ messages in thread
From: Szabolcs Nagy @ 2013-11-07  2:01 UTC (permalink / raw)
  To: Gregor Richards; +Cc: musl

* Gregor Richards <gr@purdue.edu> [2013-11-06 19:34:47 -0500]:
> Here are the results from my latest build of NetBSD pkgsrc 2013Q2 on
> musl 0.9.13, with patches from
> http://bitbucket.org/GregorR/musl-pkgsrc-patches revision
> b44694ce2dd6.
> 
> Attempted:	11270
> Deps failed:	3248
> Build tried:	8022
> Build failed:	912
> Tests failed:	1824
> Success:	5286 (65.8938%)

it would be nice if you saved all the build logs
of failed builds and published them as well

i dont expect interesting findings: i assume most
failures are bad includes, bad ifdefs or bad config

but i'd like to see this theory verified

> Breakdown:
> https://sites.google.com/a/codu.org/musl/pkgsrc-results/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-breakdown.txt?attredirects=0&d=1
> or http://wiki.musl-libc.org/pkgsrc_results

http://wiki.musl-libc.org/wiki/pkgsrc_results


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07  2:01 ` Szabolcs Nagy
@ 2013-11-07  2:22   ` Gregor Richards
  2013-11-07  2:46     ` Szabolcs Nagy
  0 siblings, 1 reply; 17+ messages in thread
From: Gregor Richards @ 2013-11-07  2:22 UTC (permalink / raw)
  To: Szabolcs Nagy; +Cc: musl

On 11/06/2013 09:01 PM, Szabolcs Nagy wrote:
> * Gregor Richards <gr@purdue.edu> [2013-11-06 19:34:47 -0500]:
>> Here are the results from my latest build of NetBSD pkgsrc 2013Q2 on
>> musl 0.9.13, with patches from
>> http://bitbucket.org/GregorR/musl-pkgsrc-patches revision
>> b44694ce2dd6.
>>
>> Attempted:	11270
>> Deps failed:	3248
>> Build tried:	8022
>> Build failed:	912
>> Tests failed:	1824
>> Success:	5286 (65.8938%)
> it would be nice if you saved all the build logs
> of failed builds and published them as well
>
> i dont expect interesting findings: i assume most
> failures are bad includes, bad ifdefs or bad config
>
> but i'd like to see this theory verified
>
>> Breakdown:
>> https://sites.google.com/a/codu.org/musl/pkgsrc-results/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-breakdown.txt?attredirects=0&d=1
>> or http://wiki.musl-libc.org/pkgsrc_results
> http://wiki.musl-libc.org/wiki/pkgsrc_results

I do in fact save the build logs, but as a single log.txt. As it's 
multiple hundreds of megs, I historically wasn't bothering to put them 
anywhere.

I've uploaded the complete log for this run to Google Drive: 
https://googledrive.com/host/0BwnS5DMB0YQ6Tjd4Z2RXeTdlaDA/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-log.txt.xz 
. If there's demand, I'll find a less silly solution in the future.

With valediction,
  - Gregor Richards



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07  2:22   ` Gregor Richards
@ 2013-11-07  2:46     ` Szabolcs Nagy
  2013-11-07 23:46       ` Szabolcs Nagy
  0 siblings, 1 reply; 17+ messages in thread
From: Szabolcs Nagy @ 2013-11-07  2:46 UTC (permalink / raw)
  To: Gregor Richards; +Cc: musl

* Gregor Richards <gr@purdue.edu> [2013-11-06 21:22:14 -0500]:
> I've uploaded the complete log for this run to Google Drive: https://googledrive.com/host/0BwnS5DMB0YQ6Tjd4Z2RXeTdlaDA/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-log.txt.xz
> . If there's demand, I'll find a less silly solution in the future.

thanks, that is good enough for me


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07  0:34 Latest pkgsrc results [What builds on musl 0.9.13?] Gregor Richards
  2013-11-07  2:01 ` Szabolcs Nagy
@ 2013-11-07  4:50 ` Kurt H Maier
  2013-11-07 13:19   ` Kurt H Maier
  1 sibling, 1 reply; 17+ messages in thread
From: Kurt H Maier @ 2013-11-07  4:50 UTC (permalink / raw)
  To: musl

Off-list to reduce noise:

Quoting Gregor Richards <gr@purdue.edu>:

> Here are the results from my latest build of NetBSD pkgsrc 2013Q2 on  
> musl 0.9.13, with patches from  
> http://bitbucket.org/GregorR/musl-pkgsrc-patches revision  
> b44694ce2dd6.


I really appreciate your doing this.  Thanks.

khm



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07  4:50 ` Kurt H Maier
@ 2013-11-07 13:19   ` Kurt H Maier
  0 siblings, 0 replies; 17+ messages in thread
From: Kurt H Maier @ 2013-11-07 13:19 UTC (permalink / raw)
  To: musl

Quoting Kurt H Maier <khm@sciops.net>:

> Off-list to reduce noise:

What a helpful email client I have!   Sorry.

khm




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07  2:46     ` Szabolcs Nagy
@ 2013-11-07 23:46       ` Szabolcs Nagy
  2013-11-08 10:48         ` John Spencer
  2013-11-09  1:01         ` Rich Felker
  0 siblings, 2 replies; 17+ messages in thread
From: Szabolcs Nagy @ 2013-11-07 23:46 UTC (permalink / raw)
  To: Gregor Richards; +Cc: musl

* Szabolcs Nagy <nsz@port70.net> [2013-11-07 03:46:52 +0100]:
> * Gregor Richards <gr@purdue.edu> [2013-11-06 21:22:14 -0500]:
> > I've uploaded the complete log for this run to Google Drive: https://googledrive.com/host/0BwnS5DMB0YQ6Tjd4Z2RXeTdlaDA/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-log.txt.xz
> > . If there's demand, I'll find a less silly solution in the future.
> 
> thanks, that is good enough for me

i processed a large chunk of the logs, here is a summary:

top missing symbols (compile or link time):

libintl_*
	postgres*-client, libmusicbrainz5, weechat-curses, scmxx, scmgit-base,..
getloadavg
	pbzip2, tokyotyrant, distccmon-gnome
NO_ADDRESS
	apache22, bglibs, cvsps, vanessa_logger, net6
res_mkquery, res_send
	hesiod, openldap-server, queryperf, traceroute-nanog, avenger, mtr
optreset
	dar, freetds
	(several configure checks found it incorrectly, but then it was not used)
strtoq
	tdb, ia64sim
GLOB_NOMAGIC, GLOB_BRACE
	asterisk18
canonicalize_file_name
	gtkwave
union wait
	tcsh
semtimedop
	sqlrelay
sys_errlist
	dmake
sys_siglist
	xemacs
herror
	opencm
mallinfo
	libfirm
TIMESPEC_TO_TIMEVAL
	libusbx
POSIX_SPAWN_USEVFORK
	ruby-posix-spawn
ruserok
	u9fs
struct ip_mreq_source
	mad-flute
struct flock64
	qemu
F_EXLCK
	qemu
c_ispeed, c_ospeed (struct termios members)
	icdprog
d_namlen (struct dirent member)
	icb
st_ctimensec (struct stat member)
	libuv
setpgrp (apparently sysv and bsd prototype differ)
	unrealircd
libiconv_*
	odt2txt, ted
KIOCSOUND, TIOCCDTR, TIOCSDTR, TIOCGSIZE (ioctl)
	minicom, modemd, beav
__STRING, __P, __BEGIN_DECLS (cdefs.h)
	libmp4v2, ctrlproxy, irssi-xmpp, fortran-utils, cook

missing internal symbols:
	howl: __sighandler_t
	xetex, icu: __timezone
	h8300-hms-gcc: __mempcpy
	erlang: __uint32_t
	libstatgrab: __uint8_t
	applyppf, makeppf: __off64_t
	qemu: __sigset_t


top missing headers:

sys/timeb.h
	unalz, audacity, gplcver, ng-spice, gammu, hdf5, libpgm, mico, dasher,..
sys/cdefs.h
	asterisk*, xulrunner* (jemalloc), libmilter, sendmail, dhcpcd,..
termio.h
	blackened, gnatpython, pardiff, emacs*-nox11, ski, bastet, craft, top,..
rpc/types.h rpc/rpc.h
	hdf, glusterfs, mrstat, lsof, snort, portmap, sharity-light, net-snmp, unfs3, ywho, PAM,..
sys/queue.h
	libstree, openrcs, miniupnpd, mtftpd, pim6dd, transmission,..
sgtty.h
	kermit, mg2a, ve, 7plus, xjdic
execinfo.h
	redis, virtuoso, powerdns, packagekit, qt4-creator
sys/bitypes.h
	libbind, libdnsres
sys/unistd.h
	mlview, foobillard, galaxa, slurm
sys/endian.h
	swarm
machine/endian.h
	estic, opendis
net/ppp_defs.h
	poptop, slurm, xfce4-netload-plugin
a.out.h
	bcc, ntp4
asm/page.h
	clisp, s10sh, same
sys/debugreg.h
	gdb6
sys/dirent.h
	heirloom-libcommon
obstack.h
	p5-Proc-ProcessTable
gnu/lib-names.h
	ruby-ffi
fpu_control.h
	jamvm
rpcsvc/ypclnt.h
	rtptools
xlocale.h
	liblive
net/if_ether.h
	cia
net/if_packet.h
	isc-dhcp4
netinet/igmp.h
	ngrep
re_comp.h
	rdist6
fstab.h
	samba35
error.h
	vpnc
fts.h
	slocate
sys/perm.h
	xosview


gcc-4.8.1 bugs:
	epic4: exec.c:118:18: internal compiler error: in set_lattice_value, at tree-ssa-ccp.c:451
	bullet: btInternalEdgeUtility.cpp:310:2: internal compiler error: Segmentation fault
	aegis fails because in libstdc++ cinttypes header is broken without -std=c++11 or -std=gnu++11
	boost-libs fail because mm_malloc.h has incompatible posix_memalign decl with throw()

probably busybox failures:
	ocaml-mysql: sed fails with out of memory
	hugs: cat: illegal option: s
	rcs: Could not find a sane line-by-line differences program (tried: gdiff rdiff diff)
	sdcc: /bin/sh: syntax error: unexpected redirection
	at least mysql5-client config uses getconf

accessing FILE internals:
	kermit: ckucmd.c:7395:48: debug(F101,"cmdconchk stdin->_cnt","",stdin->_cnt);
	icon: fpoll.c:75:9: if (f->_cnt > 0)
	emacs24: print.c:760:3: stderr = initial_stderr_stream;
	db46: checking for FILE... no  configure: error: No FILE type.

collision between libc header and linux header:
	libnet10: redefinition of struct ether_addr
	libnet11: linux/if.h: redefinition of struct ifmap

-Werror suicide:
	upx, mame, mess, tme, sfslite

other
	qt3-libs, ptlib: using signed int for socklen_t
	mysql5-client config tries to check 'getconf GNU_LIBPTHREAD_VERSION'
	many audio pkg: alsa/global.h redefines struct timespec if _POSIX_C_SOURCE is unset
	pulseaudio, esound: broken /dev/dsp emulation with LD_PRELOAD hack
	clang: DynamicLibrary.cpp has broken ifdef logic and stdin etc access
	easytag, libpeas: NULL sentinel
	pth, jabberd: #error "Unsupported Linux (g)libc version and/or platform"
	binutils, mingw-binutils: empty character constant ''
	p5-GD: CORE/perl.h uses off64_t without gnu or lfs feature test
	dosbox: uses undefined typename in offsetof
	valgrind: configure: error: Valgrind requires glibc version 2.2 - 2.16
	emacs20: configure: error: Emacs hasn't been ported to `x86_64-unknown-linux-gnu' systems.
	rrdtool: configure: error: I need a copy of *nroff to format the documentation
	afs, openafs: configure: error: Couldn't guess your Linux version.
	nvi: configure: error: No writeable preserve directory found.
	gtk-doc: configure: error: could not find DocBook XML DTD V4.3 in XML catalog
	boost/integer_traits.hpp: misses WCHAR_MIN and WCHAR_MAX because of ifdef hell
	cstore: static const int PAGE_SIZE=65000;
	zzuf: redefinition of open: int NEW(open64)(const char *file, int oflag, ...)
	libjit: #error "Don't know how to determine if floating point numbers are finite"
	tk: tkPanedWindow.o: file not recognized: File truncated
	ex: conflicing prototype: char *memalign(size_t alignment, size_t size);
	dia: configure: error: Can't find neither a definition of isinf nor ieeefp.h
	cc65, gnats, sandy: undefined siginfo_t because sys/wait.h is used with -std=c89
	scrollz: undefined curses symbols (tputs, tgetstr)
	gnuchess4, camediaplay, sc, sysmon: cannot find curses.h
	ocaml-zip, edb: cannot find zlib.h
	poco: cannot find sqlite3.h
	sdbm: cannot find ndbm.h

include fails:
	libbinio: EOF was not declared in this scope
	libmpdclient: unknown type name fd_set
	glib: poll undeclared here
	libspiff: printf was not declared in this scope
	libproxy: fd_set was not declared
	climm: unknown type name int8_t
	sirc: incompatible implicit declaration of built-in function strlen
	uisp: NULL was not declared in this scope
	xqilla: ptrdiff_t does not name a type
	gnome-keyring: unknown type name fd_set
	libhfs: unknown type name time_t
	libpgm: unknown type name ssize_t
	log4shib: int64_t does not name a type
	nsis: close was not declared in this scope
	pyfann: ptrdiff_t does not name a type
	rpc2: F_GETFL undeclared
	tvision: intptr_t has not been declared
	vanessa_logger: undefined CODE
	mg: unknown type name mode_t
	notecase: basename was not declared in this scope
	xemacs: NI_MAXHOST undeclared
	aranym: caddr_t was not declared in this scope
	gpsim-devel: puts was not declared in this scope
	pcemu: O_RDONLY undeclared
	vba: uint32_t does not name a type
	oto: incompatible implicit declaration of built-in function calloc
	cdparanoia: u_int32_t undeclared
	anope: unknown type name u_int32_t
	conserver: u_short undeclared
	gmp3info: uint undeclared
	libbegemot: unknown type name u_int
	aliados: ushort has not been declared


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07 23:46       ` Szabolcs Nagy
@ 2013-11-08 10:48         ` John Spencer
  2013-11-09  1:01         ` Rich Felker
  1 sibling, 0 replies; 17+ messages in thread
From: John Spencer @ 2013-11-08 10:48 UTC (permalink / raw)
  To: musl; +Cc: Gregor Richards

Szabolcs Nagy wrote:
> * Szabolcs Nagy <nsz@port70.net> [2013-11-07 03:46:52 +0100]:
>> * Gregor Richards <gr@purdue.edu> [2013-11-06 21:22:14 -0500]:
>>> I've uploaded the complete log for this run to Google Drive: https://googledrive.com/host/0BwnS5DMB0YQ6Tjd4Z2RXeTdlaDA/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-log.txt.xz
>>> . If there's demand, I'll find a less silly solution in the future.
>> thanks, that is good enough for me
> 
> i processed a large chunk of the logs, here is a summary:

thanks, good work

> 
> top missing symbols (compile or link time):
> 
> libintl_*
> 	postgres*-client, libmusicbrainz5, weechat-curses, scmxx, scmgit-base,..
> getloadavg
> 	pbzip2, tokyotyrant, distccmon-gnome
> NO_ADDRESS
> 	apache22, bglibs, cvsps, vanessa_logger, net6

apache works flawlessly in sabotage, however that v24

> res_mkquery, res_send
> 	hesiod, openldap-server, queryperf, traceroute-nanog, avenger, mtr
> optreset
> 	dar, freetds
> 	(several configure checks found it incorrectly, but then it was not used)
> strtoq
> 	tdb, ia64sim

can be replaced with portable strtoll()

> GLOB_NOMAGIC, GLOB_BRACE
> 	asterisk18
> canonicalize_file_name
> 	gtkwave

can be replaced with portable realpath(X, 0)

> union wait
> 	tcsh

patch exists in sabotage

> semtimedop
> 	sqlrelay
> sys_errlist
> 	dmake

bsd specific errlist, can be replaced with strerror()

> sys_siglist
> 	xemacs

bsd specific siglist, can be replaced with strsignal()

> herror
> 	opencm
> mallinfo
> 	libfirm
> TIMESPEC_TO_TIMEVAL
> 	libusbx

patch exists in sabotage

> POSIX_SPAWN_USEVFORK
> 	ruby-posix-spawn
> ruserok
> 	u9fs
> struct ip_mreq_source
> 	mad-flute
> struct flock64
> 	qemu

patch exists in sabotage

> F_EXLCK
> 	qemu

patch exists in sabotage

> c_ispeed, c_ospeed (struct termios members)
> 	icdprog
> d_namlen (struct dirent member)
> 	icb
> st_ctimensec (struct stat member)
> 	libuv
> setpgrp (apparently sysv and bsd prototype differ)
> 	unrealircd
> libiconv_*
> 	odt2txt, ted
> KIOCSOUND, TIOCCDTR, TIOCSDTR, TIOCGSIZE (ioctl)
> 	minicom, modemd, beav
> __STRING, __P, __BEGIN_DECLS (cdefs.h)
> 	libmp4v2, ctrlproxy, irssi-xmpp, fortran-utils, cook

usage of sys/cdefs.h is stupid, these should just be fixed upstream

> 
> missing internal symbols:
> 	howl: __sighandler_t
> 	xetex, icu: __timezone
> 	h8300-hms-gcc: __mempcpy
> 	erlang: __uint32_t
> 	libstatgrab: __uint8_t
> 	applyppf, makeppf: __off64_t
> 	qemu: __sigset_t

likewise

> 
> 
> top missing headers:
> 
> sys/timeb.h
> 	unalz, audacity, gplcver, ng-spice, gammu, hdf5, libpgm, mico, dasher,..

was added to musl git a couple days back

> sys/cdefs.h
> 	asterisk*, xulrunner* (jemalloc), libmilter, sendmail, dhcpcd,..
> termio.h
> 	blackened, gnatpython, pardiff, emacs*-nox11, ski, bastet, craft, top,..

these should probably be fixed to check for termios.h at configure time 
and use that if available

> rpc/types.h rpc/rpc.h
> 	hdf, glusterfs, mrstat, lsof, snort, portmap, sharity-light, net-snmp, unfs3, ywho, PAM,..

there's a package "portablexdr" which provides these headers, plus an 
implementation of the xdr parts of it.

> sys/queue.h
> 	libstree, openrcs, miniupnpd, mtftpd, pim6dd, transmission,..

this one is fun: miniupnp for example comes with its own copy of 
queue.h, but doesnt use it properly. the author is ignoring a bug report 
since 10 months: https://github.com/miniupnp/miniupnp/issues/25 , maybe 
it would help if others could ping the issue there, so the author sees 
its not just a single dude demanding portability.
transmission includes its own copy of miniupnp, and that's what fails again.

packages using this header should generally provide their own copy, and 
then just unconditionally use it instead of doing all kinds of hacks to 
be able to fall back to the system copy if it exists.

patch exists in sabotage

> sgtty.h
> 	kermit, mg2a, ve, 7plus, xjdic
> execinfo.h
> 	redis, virtuoso, powerdns, packagekit, qt4-creator

they want to use glibc's backtrace(), so they should check whether it's 
available.

> sys/bitypes.h
> 	libbind, libdnsres
> sys/unistd.h
> 	mlview, foobillard, galaxa, slurm

should be <unistd.h> of course. no idea where these guys learned C.

> sys/endian.h
> 	swarm
> machine/endian.h
> 	estic, opendis

probably #ifdef __GLIBC__ used instead of __linux__ : machine/endian.h 
is the BSD/OSX version of <endian.h>

maybe sys/endian.h should be added as a forward to endian.h as it's been 
done for sys/poll.h and the likes.

> net/ppp_defs.h
> 	poptop, slurm, xfce4-netload-plugin
> a.out.h
> 	bcc, ntp4
> asm/page.h
> 	clisp, s10sh, same
> sys/debugreg.h
> 	gdb6

patch exists in sabotage

> sys/dirent.h
> 	heirloom-libcommon

should be <dirent.h>

> obstack.h
> 	p5-Proc-ProcessTable
> gnu/lib-names.h
> 	ruby-ffi
> fpu_control.h
> 	jamvm
> rpcsvc/ypclnt.h
> 	rtptools
> xlocale.h
> 	liblive
> net/if_ether.h
> 	cia

should be netinet/if_ether.h

> net/if_packet.h
> 	isc-dhcp4
> netinet/igmp.h
> 	ngrep
> re_comp.h
> 	rdist6
> fstab.h
> 	samba35
> error.h
> 	vpnc
> fts.h
> 	slocate

using fts.h is completely broken

quoting glibc:
/* The fts interface is incompatible with the LFS interface which
    transparently uses the 64-bit file access functions.  */
#ifdef __USE_FILE_OFFSET64
# error "<fts.h> cannot be used with -D_FILE_OFFSET_BITS==64"
#endif


> sys/perm.h
> 	xosview
> 
> 
> gcc-4.8.1 bugs:
> 	epic4: exec.c:118:18: internal compiler error: in set_lattice_value, at tree-ssa-ccp.c:451
> 	bullet: btInternalEdgeUtility.cpp:310:2: internal compiler error: Segmentation fault
> 	aegis fails because in libstdc++ cinttypes header is broken without -std=c++11 or -std=gnu++11
> 	boost-libs fail because mm_malloc.h has incompatible posix_memalign decl with throw()
> 
> probably busybox failures:
> 	ocaml-mysql: sed fails with out of memory
> 	hugs: cat: illegal option: s
> 	rcs: Could not find a sane line-by-line differences program (tried: gdiff rdiff diff)
> 	sdcc: /bin/sh: syntax error: unexpected redirection
> 	at least mysql5-client config uses getconf
> 
> accessing FILE internals:
> 	kermit: ckucmd.c:7395:48: debug(F101,"cmdconchk stdin->_cnt","",stdin->_cnt);
> 	icon: fpoll.c:75:9: if (f->_cnt > 0)
> 	emacs24: print.c:760:3: stderr = initial_stderr_stream;
> 	db46: checking for FILE... no  configure: error: No FILE type.

yay.

> 
> collision between libc header and linux header:
> 	libnet10: redefinition of struct ether_addr
> 	libnet11: linux/if.h: redefinition of struct ifmap
> 
> -Werror suicide:
> 	upx, mame, mess, tme, sfslite

configure --disable-werror should fix that if autoconf is used

> 
> other
> 	qt3-libs, ptlib: using signed int for socklen_t
> 	mysql5-client config tries to check 'getconf GNU_LIBPTHREAD_VERSION'
> 	many audio pkg: alsa/global.h redefines struct timespec if _POSIX_C_SOURCE is unset

patched in sabotage, my enquiry regarding this header was left 
unanswered. 
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-July/064402.html
(however the "guilty" developer which i addressed didnt post anything to 
alsa-devel since. i guess it would make sense to forward this to takashi 
iwai who has been very cooperative in the past)
the other compatibility issues of alsa have been fixed, and 1.27.3 
should build out of the box.

> 	pulseaudio, esound: broken /dev/dsp emulation with LD_PRELOAD hack

LOL

> 	clang: DynamicLibrary.cpp has broken ifdef logic and stdin etc access

was reported upstream several times, but the developers apparently don't 
care. seems some social engineering in the #llvm chan @oftc is required 
to get that fixed.

> 	easytag, libpeas: NULL sentinel
> 	pth, jabberd: #error "Unsupported Linux (g)libc version and/or platform"
> 	binutils, mingw-binutils: empty character constant ''
> 	p5-GD: CORE/perl.h uses off64_t without gnu or lfs feature test
> 	dosbox: uses undefined typename in offsetof

works in sabotage

> 	valgrind: configure: error: Valgrind requires glibc version 2.2 - 2.16
> 	emacs20: configure: error: Emacs hasn't been ported to `x86_64-unknown-linux-gnu' systems.
> 	rrdtool: configure: error: I need a copy of *nroff to format the documentation
> 	afs, openafs: configure: error: Couldn't guess your Linux version.
> 	nvi: configure: error: No writeable preserve directory found.
> 	gtk-doc: configure: error: could not find DocBook XML DTD V4.3 in XML catalog
> 	boost/integer_traits.hpp: misses WCHAR_MIN and WCHAR_MAX because of ifdef hell

boost patches are availabe in sabotage

> 	cstore: static const int PAGE_SIZE=65000;

o_0

> 	zzuf: redefinition of open: int NEW(open64)(const char *file, int oflag, ...)
> 	libjit: #error "Don't know how to determine if floating point numbers are finite"
> 	tk: tkPanedWindow.o: file not recognized: File truncated
> 	ex: conflicing prototype: char *memalign(size_t alignment, size_t size);
> 	dia: configure: error: Can't find neither a definition of isinf nor ieeefp.h

should use isfinite()

> 	cc65, gnats, sandy: undefined siginfo_t because sys/wait.h is used with -std=c89
> 	scrollz: undefined curses symbols (tputs, tgetstr)
> 	gnuchess4, camediaplay, sc, sysmon: cannot find curses.h
> 	ocaml-zip, edb: cannot find zlib.h
> 	poco: cannot find sqlite3.h
> 	sdbm: cannot find ndbm.h
> 
> include fails:
> 	libbinio: EOF was not declared in this scope
> 	libmpdclient: unknown type name fd_set
> 	glib: poll undeclared here
> 	libspiff: printf was not declared in this scope
> 	libproxy: fd_set was not declared
> 	climm: unknown type name int8_t
> 	sirc: incompatible implicit declaration of built-in function strlen
> 	uisp: NULL was not declared in this scope
> 	xqilla: ptrdiff_t does not name a type
> 	gnome-keyring: unknown type name fd_set
> 	libhfs: unknown type name time_t
> 	libpgm: unknown type name ssize_t
> 	log4shib: int64_t does not name a type
> 	nsis: close was not declared in this scope
> 	pyfann: ptrdiff_t does not name a type
> 	rpc2: F_GETFL undeclared
> 	tvision: intptr_t has not been declared
> 	vanessa_logger: undefined CODE
> 	mg: unknown type name mode_t
> 	notecase: basename was not declared in this scope
> 	xemacs: NI_MAXHOST undeclared
> 	aranym: caddr_t was not declared in this scope
> 	gpsim-devel: puts was not declared in this scope
> 	pcemu: O_RDONLY undeclared
> 	vba: uint32_t does not name a type
> 	oto: incompatible implicit declaration of built-in function calloc

> 	cdparanoia: u_int32_t undeclared
> 	anope: unknown type name u_int32_t
> 	conserver: u_short undeclared
> 	gmp3info: uint undeclared
> 	libbegemot: unknown type name u_int
> 	aliados: ushort has not been declared

failure to include sys/types.h is something i often encounter. it seems 
some glibc header automatically pulls that one in.

> 


TL;DR: no single musl bug. if someone wants to help, feel free to 
forward this list to the respective package maintainers.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-07 23:46       ` Szabolcs Nagy
  2013-11-08 10:48         ` John Spencer
@ 2013-11-09  1:01         ` Rich Felker
  2013-11-09  4:02           ` Szabolcs Nagy
  1 sibling, 1 reply; 17+ messages in thread
From: Rich Felker @ 2013-11-09  1:01 UTC (permalink / raw)
  To: musl; +Cc: Gregor Richards

On Fri, Nov 08, 2013 at 12:46:31AM +0100, Szabolcs Nagy wrote:
> * Szabolcs Nagy <nsz@port70.net> [2013-11-07 03:46:52 +0100]:
> > * Gregor Richards <gr@purdue.edu> [2013-11-06 21:22:14 -0500]:
> > > I've uploaded the complete log for this run to Google Drive: https://googledrive.com/host/0BwnS5DMB0YQ6Tjd4Z2RXeTdlaDA/pkgsrc-results-2013Q2-b44694ce2dd6-musl-0.9.13-log.txt.xz
> > > . If there's demand, I'll find a less silly solution in the future.
> > 
> > thanks, that is good enough for me
> 
> i processed a large chunk of the logs, here is a summary:

Thanks! Do you have any recommended actions on any of them (aside from
fixing applications)?

> top missing symbols (compile or link time):
> 
> libintl_*
> 	postgres*-client, libmusicbrainz5, weechat-curses, scmxx, scmgit-base,..

Which symbols? glibc doesn't seem to have any symbols matching
libintl_*.

> getloadavg
> 	pbzip2, tokyotyrant, distccmon-gnome

This would probably be trivial to add.

> NO_ADDRESS
> 	apache22, bglibs, cvsps, vanessa_logger, net6

This I would rather not add, since we don't support it, and providing
the macro but never returning it could be misleading.

> res_mkquery, res_send
> 	hesiod, openldap-server, queryperf, traceroute-nanog, avenger, mtr

These were on the low-priority agenda for stuff leading up to 1.0, but
got pushed back because I want to focus on fixing bugs and such.

> optreset
> 	dar, freetds
> 	(several configure checks found it incorrectly, but then it was not used)

Hm? I think we have optreset...

> strtoq
> 	tdb, ia64sim

I'd considered adding the alias, but if only 2 programs were found
using it, I think we should just get them fixed. No need to support
legacy crap for 2 obscure programs.

> GLOB_NOMAGIC, GLOB_BRACE
> 	asterisk18

These can't be defined without actually supporting the functionality,
which is heavyweight/ugly.

> semtimedop
> 	sqlrelay

This is a Linux-specific sysvsem operation we're missing, right? If so
I think the syscall wrapper should be added.

> sys_errlist
> 	dmake
> sys_siglist
> 	xemacs

These are both harmful and definitely should not be supported. (They
introduce copy relocations which encode the SIZE of these lists as
part of the application's ABI.) However, I'm not clear that
sys_siglist is covered by strsignal; I think it may be SIG___ names
rather than the descriptive strings.

> herror
> 	opencm

No idea what this even is.

> mallinfo
> 	libfirm

Deprecated API but we could provide a dummy anyway.

> TIMESPEC_TO_TIMEVAL
> 	libusbx

Perhaps worth adding?

> POSIX_SPAWN_USEVFORK
> 	ruby-posix-spawn

Should be fixed in ruby with #ifdef around the usage. This is not
useful with musl. In principle we could just provide the flag as a
no-op, but it's a really bad API design (exposing the
implementation-detail rather than the semantics as the flag name) and
since it doesn't affect ABI, I'd rather get apps which are using it
fixed at the source level rather than adding a no-op flag.

> ruserok
> 	u9fs

.....wow. Can't believe anything is still using the rhosts APIs...

> struct ip_mreq_source
> 	mad-flute

There's an unresolved thread about adding these somewhere, possibly
with a patch.

> F_EXLCK
> 	qemu

Need more info on what it's about. Maybe something we should add.

> c_ispeed, c_ospeed (struct termios members)
> 	icdprog

If c_* is reserved we could possibly add these.

> d_namlen (struct dirent member)
> 	icb

This seems to be a BSD-ism, not present on glibc either, and there's
no way to add it.

> st_ctimensec (struct stat member)
> 	libuv

st_ctim.tv_nsec

> setpgrp (apparently sysv and bsd prototype differ)
> 	unrealircd

Yes, this is a BSD-ism and just needs to be fixed in the application.
musl's conforms to the POSIX requirements.

> libiconv_*
> 	odt2txt, ted

Specific symbols ??

> KIOCSOUND, TIOCCDTR, TIOCSDTR, TIOCGSIZE (ioctl)
> 	minicom, modemd, beav

These should almost surely be added somewhere...

> __STRING, __P, __BEGIN_DECLS (cdefs.h)
> 	libmp4v2, ctrlproxy, irssi-xmpp, fortran-utils, cook

Apps should be fixed.

> missing internal symbols:
> 	howl: __sighandler_t
> 	xetex, icu: __timezone
> 	h8300-hms-gcc: __mempcpy
> 	erlang: __uint32_t
> 	libstatgrab: __uint8_t
> 	applyppf, makeppf: __off64_t
> 	qemu: __sigset_t

Ditto.

> top missing headers:
> 
> sys/timeb.h
> 	unalz, audacity, gplcver, ng-spice, gammu, hdf5, libpgm, mico, dasher,..

This has been added in git (it was mandatory in POSIX-2001).

> sys/cdefs.h
> 	asterisk*, xulrunner* (jemalloc), libmilter, sendmail, dhcpcd,..

This has been an ongoing issue, but my leaning is still to omit it. If
somebody really wants it, it can be installed as a third-party header;
it has no libc dependencies. However, the apps should really just be
fixed.

> termio.h
> 	blackened, gnatpython, pardiff, emacs*-nox11, ski, bastet, craft, top,..

We could consider this for addition, but I'd rather get apps fixed.

> rpc/types.h rpc/rpc.h
> 	hdf, glusterfs, mrstat, lsof, snort, portmap, sharity-light, net-snmp, unfs3, ywho, PAM,..

Non-libc.

> sys/queue.h
> 	libstree, openrcs, miniupnpd, mtftpd, pim6dd, transmission,..

This can also be treated as a third-party library to be installed if
desired.

> sgtty.h
> 	kermit, mg2a, ve, 7plus, xjdic

glibc has the header, but the functions are hard to find any Linux
documentation for; they seem to be "unimplemented" syscalls. So this
is probably a BSD-ism.

> execinfo.h
> 	redis, virtuoso, powerdns, packagekit, qt4-creator

Backtrace stuff, right?

> sys/bitypes.h
> 	libbind, libdnsres

We could add this as an alias for sys/types.h with a #warning, if
desired. I'm fairly indifferent.

> sys/unistd.h
> 	mlview, foobillard, galaxa, slurm

Ditto.

> sys/endian.h
> 	swarm

This could probably be added even without a #warning since it's
nonstandard and sys/endian.h is just as "valid" as endian.h, but I'm
not clear whether it's worth it for ONE obscure program that could
just be fixed.

> machine/endian.h
> 	estic, opendis

Making a new dir is probably not worth it either.

> net/ppp_defs.h
> 	poptop, slurm, xfce4-netload-plugin

Don't know enough to comment.

> a.out.h
> 	bcc, ntp4

Probably does not make sense; musl does not (out of the box, anyway)
support a.out binaries.

> asm/page.h
> 	clisp, s10sh, same

Isn't this a kernel header?

> sys/debugreg.h
> 	gdb6

Hmm, looks like another case of gdb internals in libc (or vice
versa)...

> sys/dirent.h
> 	heirloom-libcommon

Possibly another #warning redirect?

> obstack.h
> 	p5-Proc-ProcessTable

musl does not provide GNU obstack functions, but _might_ in the
future if it's deemed useful for ABI-compat.

> gnu/lib-names.h
> 	ruby-ffi

I don't think this one makes sense at all to have in musl.

> fpu_control.h
> 	jamvm

Looks like an ugly non-abstracted legacy version of fenv.h.

> xlocale.h
> 	liblive

Since these interfaces were declared in xlocale.h before being
standardized in POSIX 2008, it might make sense to provide the header;
however, the fact that only one program was found to be needing it
makes me doubt the usefulness.

> net/if_ether.h
> 	cia

Is this a duplicate of the one in netinet or something different?

> net/if_packet.h
> 	isc-dhcp4

And netpacket/packet.h?

> netinet/igmp.h
> 	ngrep

Perhaps should be added.

> re_comp.h
> 	rdist6

I think this is part of the GNU regex API, not supported by musl.

> fstab.h
> 	samba35

Yet another hideous non-threadsafe, non-library-safe *ent API. As long
as there's only one program using it my feeling is to omit it.

> error.h
> 	vpnc

Wow, only one? There's been a fair amount of demand for error.h so I
might add this one sometime...

> fts.h
> 	slocate

fts.h is fundamentally broken on glibc (it #errors with 64bit off_t)
and thus any program using it is broken. There is a non-broken version
in gnulib or BSD which program should copy into their source trees and
use if they need it. So there's no reason for musl to provide it; we
couldn't match the glibc ABI anyway since the glibc ABI is wrong
(32-bit).

> sys/perm.h
> 	xosview

Seems redundant with sys/io.h?

> gcc-4.8.1 bugs:
> 	epic4: exec.c:118:18: internal compiler error: in set_lattice_value, at tree-ssa-ccp.c:451
> 	bullet: btInternalEdgeUtility.cpp:310:2: internal compiler error: Segmentation fault
> 	aegis fails because in libstdc++ cinttypes header is broken without -std=c++11 or -std=gnu++11
> 	boost-libs fail because mm_malloc.h has incompatible posix_memalign decl with throw()

Was gcc built aginst musl? Assuming so, it's _possible_ that some of
these are musl bugs, though gcc sounds more likely.

> probably busybox failures:
> 	ocaml-mysql: sed fails with out of memory
> 	hugs: cat: illegal option: s
> 	rcs: Could not find a sane line-by-line differences program (tried: gdiff rdiff diff)

rcs probably wants non-unified diff; I think busybox only provides
unified.

> 	sdcc: /bin/sh: syntax error: unexpected redirection

Bashism?

> 	at least mysql5-client config uses getconf

Hm? We should probably provide a getconf that works with musl
somewhere...

> accessing FILE internals:
> 	kermit: ckucmd.c:7395:48: debug(F101,"cmdconchk stdin->_cnt","",stdin->_cnt);
> 	icon: fpoll.c:75:9: if (f->_cnt > 0)
> 	emacs24: print.c:760:3: stderr = initial_stderr_stream;
> 	db46: checking for FILE... no  configure: error: No FILE type.

The last one is a C99 conformance issue, but I'm not sure we want to
change it since C11 dropped the requirement.

> collision between libc header and linux header:
> 	libnet10: redefinition of struct ether_addr
> 	libnet11: linux/if.h: redefinition of struct ifmap

No really good solution to these.

> -Werror suicide:
> 	upx, mame, mess, tme, sfslite

If the warnings were musl-specific, they might be issues we should
"fix" though.

> other
> 	qt3-libs, ptlib: using signed int for socklen_t

glibc also has unsigned socklen_t, so I'm confused how they work with
glibc but not musl...

> 	mysql5-client config tries to check 'getconf GNU_LIBPTHREAD_VERSION'
> 	many audio pkg: alsa/global.h redefines struct timespec if _POSIX_C_SOURCE is unset

This is stupid and should just be fixed in alsa. timespec is likely to
be defined (e.g. by default) without _POSIX_C_SOURCE being defined,
and in C11 it's even required to be defined.

> 	pulseaudio, esound: broken /dev/dsp emulation with LD_PRELOAD hack
> 	clang: DynamicLibrary.cpp has broken ifdef logic and stdin etc access
> 	easytag, libpeas: NULL sentinel

BTW, I think we may need to re-think the NULL issue. POSIX seems to
require it to have pointer type...

> 	pth, jabberd: #error "Unsupported Linux (g)libc version and/or platform"

Hahah. Well in the case of pth this is probably the best it can do.
pth is exactly the opposite of portable. Thankfully it's deprecated
and somebody's working on a drop-in replacement built on top of POSIX
threads for the few programs that actually need it.

> 	binutils, mingw-binutils: empty character constant ''

Cause? musl-specific?

> 	p5-GD: CORE/perl.h uses off64_t without gnu or lfs feature test

App bug.

> 	dosbox: uses undefined typename in offsetof

A type musl is missing?

> 	valgrind: configure: error: Valgrind requires glibc version 2.2 - 2.16

To be fair, valgrind might depend enough on glibc internals to make
this kind of specificity necessary. We should work with the valgrind
team to get musl support fixed, ideally without anything invasive on
the musl side.

> 	emacs20: configure: error: Emacs hasn't been ported to `x86_64-unknown-linux-gnu' systems.

Haha. emacs20 still? Really? That's way too old to be useful; it
doesn't even support UTF-8. emacs23 is the first version to care
about.

> 	rrdtool: configure: error: I need a copy of *nroff to format the documentation
> 	afs, openafs: configure: error: Couldn't guess your Linux version.
> 	nvi: configure: error: No writeable preserve directory found.
> 	gtk-doc: configure: error: could not find DocBook XML DTD V4.3 in XML catalog

Most of these look non-musl-specific.

> 	boost/integer_traits.hpp: misses WCHAR_MIN and WCHAR_MAX because of ifdef hell

Oh? Is this their fault or something weird we're doing?

> 	cstore: static const int PAGE_SIZE=65000;

Namespace violation.

> 	zzuf: redefinition of open: int NEW(open64)(const char *file, int oflag, ...)

I guess it's defining _GNU_SOURCE or the whole pkgsrc run is. open64
should not be defined by default in musl.

> 	libjit: #error "Don't know how to determine if floating point numbers are finite"

Is it doing stupid #ifdefs based on glibc version, or failing for some
semi-readonable reason?

> 	tk: tkPanedWindow.o: file not recognized: File truncated

Weird...

> 	ex: conflicing prototype: char *memalign(size_t alignment, size_t size);

App bug.

> 	dia: configure: error: Can't find neither a definition of isinf nor ieeefp.h

Um, math.h?

> 	cc65, gnats, sandy: undefined siginfo_t because sys/wait.h is used with -std=c89

This is something we need to fix. I'm thinking sys/wait.h should just
omit the stuff that needs siginfo_t if the right features are not
enabled. (Really, omitting the whole file would be valid, but I
suspect this would break programs worse.)

> 	scrollz: undefined curses symbols (tputs, tgetstr)
> 	gnuchess4, camediaplay, sc, sysmon: cannot find curses.h

Improper or failed ncurses installation?

> 	ocaml-zip, edb: cannot find zlib.h
> 	poco: cannot find sqlite3.h

Unrelated to musl.

> 	sdbm: cannot find ndbm.h

Presence or absence of ndbm in libc varies (it's supposedly required
as part of XSI, IIRC) but I think we should leave it as a third-party
thing. The API is so broken as to be utterly useless.

> include fails:
> 	libbinio: EOF was not declared in this scope

Assumption that some random header includes stdio.h, maybe?

> 	libmpdclient: unknown type name fd_set

Probably the same, but for sys/select.h and sys/time.h.

> 	glib: poll undeclared here

I never hit this one before; wonder why it's happening?

> 	libspiff: printf was not declared in this scope
> 	libproxy: fd_set was not declared

Probably same as above.

> 	climm: unknown type name int8_t
> 	sirc: incompatible implicit declaration of built-in function strlen
> 	uisp: NULL was not declared in this scope
> 	xqilla: ptrdiff_t does not name a type
> 	gnome-keyring: unknown type name fd_set
> 	libhfs: unknown type name time_t
> 	libpgm: unknown type name ssize_t
> 	log4shib: int64_t does not name a type
> 	nsis: close was not declared in this scope
> 	pyfann: ptrdiff_t does not name a type
> 	rpc2: F_GETFL undeclared
> 	tvision: intptr_t has not been declared
> 	vanessa_logger: undefined CODE
> 	mg: unknown type name mode_t
> 	notecase: basename was not declared in this scope
> 	xemacs: NI_MAXHOST undeclared
> 	aranym: caddr_t was not declared in this scope
> 	gpsim-devel: puts was not declared in this scope
> 	pcemu: O_RDONLY undeclared
> 	vba: uint32_t does not name a type
> 	oto: incompatible implicit declaration of built-in function calloc
> 	cdparanoia: u_int32_t undeclared
> 	anope: unknown type name u_int32_t
> 	conserver: u_short undeclared
> 	gmp3info: uint undeclared
> 	libbegemot: unknown type name u_int
> 	aliados: ushort has not been declared

Pretty much all of these look like the same basic issue: invalid
assumptions that one header includes another. This means they could
probably easily be fixed upstream if somebody's willing to do the
analysis to determine where the invalid assumptions are. Since these
should all be non-controversial fixes, I think this would be a great
"patch flood" project to precede or go along with the upcoming 1.0
release, as discussed in the publicity plan thread.

Rich


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-09  1:01         ` Rich Felker
@ 2013-11-09  4:02           ` Szabolcs Nagy
  2013-11-09  5:20             ` Rich Felker
  0 siblings, 1 reply; 17+ messages in thread
From: Szabolcs Nagy @ 2013-11-09  4:02 UTC (permalink / raw)
  To: musl; +Cc: Gregor Richards

* Rich Felker <dalias@aerifal.cx> [2013-11-08 20:01:30 -0500]:
> > top missing symbols (compile or link time):
> > 
> > libintl_*
> > 	postgres*-client, libmusicbrainz5, weechat-curses, scmxx, scmgit-base,..
> 
> Which symbols? glibc doesn't seem to have any symbols matching
> libintl_*.

these are the gettext symbols (libintl_dgettext etc)
for some reason they are without prefix in the libc
but you can get them with prefix as well with -lintl

i assume this is some configure or pkgsrc failure
to set up the link flags or the include paths
(i assume there is a libintl.h that adds the prefix
with macro hackery and one that doesnt and they are
used inconsistently with the link flags)

btw the symbol failures were based on about 40% of the
pkgsrc logs but the header errors are 100% covered
(minus mistakes during my manual aggregation of the results)

> > getloadavg
> > 	pbzip2, tokyotyrant, distccmon-gnome
> 
> This would probably be trivial to add.

return -1?

we can add it i guess but these packages could
use configure checks (i think they are autoconfed)

> > NO_ADDRESS
> > 	apache22, bglibs, cvsps, vanessa_logger, net6
> 
> This I would rather not add, since we don't support it, and providing
> the macro but never returning it could be misleading.

actually NO_ADDRESS is an alias for NO_DATA in glibc and the bsds
(for almost 20years now), but it's not critical

> > optreset
> > 	dar, freetds
> > 	(several configure checks found it incorrectly, but then it was not used)
> 
> Hm? I think we have optreset...

oops, my bad

some packages didnt find optreset in configure while others did

i guess the ones which failed tried unistd.h instead of getopt.h

> > semtimedop
> > 	sqlrelay
> 
> This is a Linux-specific sysvsem operation we're missing, right? If so
> I think the syscall wrapper should be added.

yes

IPCOP_semtimedop is 4 for SYS_ipc archs
and the other archs have SYS_semtimedop

> > herror
> > 	opencm
> 
> No idea what this even is.

"The (obsolete) herror() function prints the error message
associated with the current value of h_errno on stderr."

ie for printing errors of gethostbyname() and gethostbyaddr()

> > mallinfo
> > 	libfirm
> 
> Deprecated API but we could provide a dummy anyway.

it's so ugly with the signed int counters, i wouldnt
support if it's not widely used

i think libfirm can be fixed: it can either do the accounting
itself or has no business providing process-wide heap info
statistics (it is only used for a public diagnostic api)

> > TIMESPEC_TO_TIMEVAL
> > 	libusbx
> 
> Perhaps worth adding?

TIMEVAL_TO_TIMESPEC
TIMESPEC_TO_TIMEVAL

are bsd visible in freebsd, default visible in openbsd
and gnu visible in glibc in sys/time.h

can be added but only one pkg used it from 10k..

> > struct ip_mreq_source
> > 	mad-flute
> 
> There's an unresolved thread about adding these somewhere, possibly
> with a patch.
> 
> > F_EXLCK
> > 	qemu
> 
> Need more info on what it's about. Maybe something we should add.
> 
> > c_ispeed, c_ospeed (struct termios members)
> > 	icdprog
> 
> If c_* is reserved we could possibly add these.

c_* is reserved

> > libiconv_*
> > 	odt2txt, ted
> 
> Specific symbols ??

i've seen some iconv failures but these are probably not libc issues
(similar to the libintl_* case)

i guess this is just missing -liconv

gcc -o odt2txt -L/usr/lib -Wl,-R/usr/lib odt2txt.o regex.o mem.o strbuf.o kunzip/fileio.o kunzip/zipfile.o -lz
odt2txt.o: In function `main':
odt2txt.c:(.text.startup+0x25f): undefined reference to `libiconv_open'
odt2txt.c:(.text.startup+0x370): undefined reference to `libiconv'
odt2txt.c:(.text.startup+0x4eb): undefined reference to `libiconv_close'
odt2txt.c:(.text.startup+0x7e3): undefined reference to `libiconv_open'
odt2txt.c:(.text.startup+0x8ad): undefined reference to `libiconv'
odt2txt.c:(.text.startup+0x95a): undefined reference to `libiconvlist'
collect2: error: ld returned 1 exit status

and there is hex-a-hop:
...
configure: WARNING: unrecognized options: --with-libiconv-prefix, --with-libintl-prefix
...
text.cpp:447:77: error: invalid conversion from const char** to char** [-fpermissive]
  iconv(cd, (const char **)&in_buf, &text_length, &out_buf, &text_utf8_length);
                                                                             ^
In file included from /usr/include/SDL/SDL_stdinc.h:74:0,
                 from /usr/include/SDL/SDL_main.h:26,
                 from /usr/include/SDL/SDL.h:30,
                 from video.h:4,
                 from text.cpp:8:
/var/pkgsrc/games/hex-a-hop/work/.buildlink/include/iconv.h:81:15: error:   initializing argument 2 of size_t libiconv(libiconv_t, char**, size_t*, char**, size_t*) [-fpermissive]
 #define iconv libiconv
               ^
/var/pkgsrc/games/hex-a-hop/work/.buildlink/include/iconv.h:83:15: note: in expansion of macro iconv
 extern size_t iconv (iconv_t cd,  char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);

gnuplot misses -liconv as well:
...
/usr/lib/gcc/x86_64-linux-musl/4.8.1/../../../../x86_64-linux-musl/bin/ld: set.o: undefined reference to symbol 'libiconv_open'
/usr/lib/gcc/x86_64-linux-musl/4.8.1/../../../../x86_64-linux-musl/bin/ld: note: 'libiconv_open' is defined in DSO /usr/lib/libiconv.so.2 so try adding it to the linker command line
/usr/lib/libiconv.so.2: could not read symbols: Invalid operation

> > KIOCSOUND, TIOCCDTR, TIOCSDTR, TIOCGSIZE (ioctl)
> > 	minicom, modemd, beav
> 
> These should almost surely be added somewhere...

there are some other ioctl failures
but there might be some bsd only things in pkgsrc

> > execinfo.h
> > 	redis, virtuoso, powerdns, packagekit, qt4-creator
> 
> Backtrace stuff, right?

yes

now i see that redis also uses jemalloc which uses ffsl
"warning: implicit declaration of function ffsl"
that's another missing symbol

> > sys/bitypes.h
> > 	libbind, libdnsres
> 
> We could add this as an alias for sys/types.h with a #warning, if
> desired. I'm fairly indifferent.

it is only used by bind (i guess dnsres does the same)
i wouldnt be surprised if that had other incurable brokenness
but alias with warning is fine

> > sys/unistd.h
> > 	mlview, foobillard, galaxa, slurm
> 
> Ditto.

it seems this is a subset of unistd.h on the bsds
with just macro definitions on glibc it is an alias
to unistd.h

> > sys/endian.h
> > 	swarm
> 
> This could probably be added even without a #warning since it's
> nonstandard and sys/endian.h is just as "valid" as endian.h, but I'm
> not clear whether it's worth it for ONE obscure program that could
> just be fixed.

yes

> > net/ppp_defs.h
> > 	poptop, slurm, xfce4-netload-plugin
> 
> Don't know enough to comment.

glibc includes linux/ppp_defs.h (plus defines some libc types)

> > asm/page.h
> > 	clisp, s10sh, same
> 
> Isn't this a kernel header?

ah yes

> > sys/dirent.h
> > 	heirloom-libcommon
> 
> Possibly another #warning redirect?

can be, bsds have it (a subset of dirent.h)
but glibc does not have it as far as i can tell
so heirloom should be more clever about it
(i guess it has some broken ifdef around it)

> > xlocale.h
> > 	liblive
> 
> Since these interfaces were declared in xlocale.h before being
> standardized in POSIX 2008, it might make sense to provide the header;
> however, the fact that only one program was found to be needing it
> makes me doubt the usefulness.

note that vlc and some other media packages
depend on liblive, so ppl might want it

glibc only defines __local_t (and local_t)
types there

> > net/if_ether.h
> > 	cia
> 
> Is this a duplicate of the one in netinet or something different?

as far as i can see it's like netinet/if_ether.h on glibc
but glibc, freebsd, openbsd dont have it (i can only see
it in netbsd)

however netinet/if_ether.h includes net/ethernet.h on
glibc, but it's the other way around in musl
(and on glibc both headers include linux/if_ether.h)

that's probably a bug

> > net/if_packet.h
> > 	isc-dhcp4
> 
> And netpacket/packet.h?
> 
> > netinet/igmp.h
> > 	ngrep
> 
> Perhaps should be added.

yes i think so
(one of those old bsd headers that glibc provides in netinet)

> > fstab.h
> > 	samba35
> 
> Yet another hideous non-threadsafe, non-library-safe *ent API. As long
> as there's only one program using it my feeling is to omit it.

samba is probably an important one so it should be
fixed upstream if not yet done

> > error.h
> > 	vpnc
> 
> Wow, only one? There's been a fair amount of demand for error.h so I
> might add this one sometime...
> 
> > sys/perm.h
> > 	xosview
> 
> Seems redundant with sys/io.h?

yes, we could add an alias
(although on glibc sys/io.h has a bit more stuff)

> > gcc-4.8.1 bugs:
> > 	epic4: exec.c:118:18: internal compiler error: in set_lattice_value, at tree-ssa-ccp.c:451
> > 	bullet: btInternalEdgeUtility.cpp:310:2: internal compiler error: Segmentation fault
> > 	aegis fails because in libstdc++ cinttypes header is broken without -std=c++11 or -std=gnu++11
> > 	boost-libs fail because mm_malloc.h has incompatible posix_memalign decl with throw()
> 
> Was gcc built aginst musl? Assuming so, it's _possible_ that some of
> these are musl bugs, though gcc sounds more likely.

the mm_malloc.h thing is ugly, i'm not sure who else
uses that header, but the incompatible prototype
might bite others (i still dont quite understand
why extern "C" api needs throw() in glibc)

> > 	at least mysql5-client config uses getconf
> 
> Hm? We should probably provide a getconf that works with musl
> somewhere...

maybe landley could do one for toybox.. :)

> > -Werror suicide:
> > 	upx, mame, mess, tme, sfslite
> 
> If the warnings were musl-specific, they might be issues we should
> "fix" though.

no, these were things that would fail with glibc as well
(stricter pointer aliasing and unused warnings by gcc 4.8.1)

> > other
> > 	qt3-libs, ptlib: using signed int for socklen_t
> 
> glibc also has unsigned socklen_t, so I'm confused how they work with
> glibc but not musl...

yes, this is a mystery, actually the warning is shown for
many packages but most of them dont use Werror for it
maybe it's a recent gcc warning (passing int* instead of
socklen_t* aka unsigned* to interfaces like accept)

(and qt3-libs has quite a lot of dependencies, i think
it is the most wanted failing package on pkgsrc now)

> > 	pulseaudio, esound: broken /dev/dsp emulation with LD_PRELOAD hack
> > 	clang: DynamicLibrary.cpp has broken ifdef logic and stdin etc access
> > 	easytag, libpeas: NULL sentinel
> 
> BTW, I think we may need to re-think the NULL issue. POSIX seems to
> require it to have pointer type...

yes

> > 	binutils, mingw-binutils: empty character constant ''
> 
> Cause? musl-specific?

from the pkgsrc logs my guess is a $ got eaten by some tool
(maybe busybox?)

binutils builds here just fine (but i build it without bfd)

earm_epoc_pe.c: In function 'gld_arm_epoc_pe_place_orphan':
earm_epoc_pe.c:1512:37: error: empty character constant
       && (dollar = strchr (secname, '')) != NULL)
                                     ^
earm_epoc_pe.c:1646:25: error: empty character constant
      if (strchr (lname, '') == NULL)
                         ^

> > 	dosbox: uses undefined typename in offsetof
> 
> A type musl is missing?

rechecked and it is missing offsetof
(so it probably fails to include stddef.h)

> > 	boost/integer_traits.hpp: misses WCHAR_MIN and WCHAR_MAX because of ifdef hell
> 
> Oh? Is this their fault or something weird we're doing?

their fault, ugly ifdef hell instead of just
including wchar.h to work around broken platforms

http://boost.cvs.sourceforge.net/viewvc/boost/boost/boost/integer_traits.hpp?view=markup

> > 	libjit: #error "Don't know how to determine if floating point numbers are finite"
> 
> Is it doing stupid #ifdefs based on glibc version, or failing for some
> semi-readonable reason?

dont know, the log only has this message

> > 	tk: tkPanedWindow.o: file not recognized: File truncated
> 
> Weird...

yes the log has no context for it
and tk is a wanted package on pkgsrc

> > 	cc65, gnats, sandy: undefined siginfo_t because sys/wait.h is used with -std=c89
> 
> This is something we need to fix. I'm thinking sys/wait.h should just
> omit the stuff that needs siginfo_t if the right features are not
> enabled. (Really, omitting the whole file would be valid, but I
> suspect this would break programs worse.)
> 

makes sense

> > 	sdbm: cannot find ndbm.h
> 
> Presence or absence of ndbm in libc varies (it's supposedly required
> as part of XSI, IIRC) but I think we should leave it as a third-party
> thing. The API is so broken as to be utterly useless.
> 
> > include fails:
> > 	libbinio: EOF was not declared in this scope
> 
> Assumption that some random header includes stdio.h, maybe?
> 
> > 	libmpdclient: unknown type name fd_set
> 
> Probably the same, but for sys/select.h and sys/time.h.

failing to include sys/select.h is fairly common bug

> > 	glib: poll undeclared here
> 
> I never hit this one before; wonder why it's happening?

this is glib-1.2

...
> Pretty much all of these look like the same basic issue: invalid
> assumptions that one header includes another. This means they could
> probably easily be fixed upstream if somebody's willing to do the
> analysis to determine where the invalid assumptions are. Since these
> should all be non-controversial fixes, I think this would be a great
> "patch flood" project to precede or go along with the upcoming 1.0
> release, as discussed in the publicity plan thread.

yes


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-09  4:02           ` Szabolcs Nagy
@ 2013-11-09  5:20             ` Rich Felker
  2013-11-09 16:16               ` Szabolcs Nagy
  2013-11-28  3:23               ` Rob Landley
  0 siblings, 2 replies; 17+ messages in thread
From: Rich Felker @ 2013-11-09  5:20 UTC (permalink / raw)
  To: musl

On Sat, Nov 09, 2013 at 05:02:52AM +0100, Szabolcs Nagy wrote:
> * Rich Felker <dalias@aerifal.cx> [2013-11-08 20:01:30 -0500]:
> > > top missing symbols (compile or link time):
> > > 
> > > libintl_*
> > > 	postgres*-client, libmusicbrainz5, weechat-curses, scmxx, scmgit-base,..
> > 
> > Which symbols? glibc doesn't seem to have any symbols matching
> > libintl_*.
> 
> these are the gettext symbols (libintl_dgettext etc)
> for some reason they are without prefix in the libc
> but you can get them with prefix as well with -lintl

Yes, Gregor said on IRC that it's something like this...

> > > getloadavg
> > > 	pbzip2, tokyotyrant, distccmon-gnome
> > 
> > This would probably be trivial to add.
> 
> return -1?
> 
> we can add it i guess but these packages could
> use configure checks (i think they are autoconfed)

Indeed. Not sure if it's useful; just reading from /proc is just as
good.

> > > NO_ADDRESS
> > > 	apache22, bglibs, cvsps, vanessa_logger, net6
> > 
> > This I would rather not add, since we don't support it, and providing
> > the macro but never returning it could be misleading.
> 
> actually NO_ADDRESS is an alias for NO_DATA in glibc and the bsds
> (for almost 20years now), but it's not critical

In that case it's probably not harmful to add. I was worried about
switch statements, but if they don't break on glibc/BSD, we should be
fine. This one really could go either way, but if the apps can be
convinced to fix it on their end, that would be nice.

> > > optreset
> > > 	dar, freetds
> > > 	(several configure checks found it incorrectly, but then it was not used)
> > 
> > Hm? I think we have optreset...
> 
> oops, my bad
> 
> some packages didnt find optreset in configure while others did
> 
> i guess the ones which failed tried unistd.h instead of getopt.h

So it sounds like this is an invalid configure check (looking for just
the symbol rather than symbol+declaration)...

> > > semtimedop
> > > 	sqlrelay
> > 
> > This is a Linux-specific sysvsem operation we're missing, right? If so
> > I think the syscall wrapper should be added.
> 
> yes
> 
> IPCOP_semtimedop is 4 for SYS_ipc archs
> and the other archs have SYS_semtimedop

Thanks. Added.

> > > herror
> > > 	opencm
> > 
> > No idea what this even is.
> 
> "The (obsolete) herror() function prints the error message
> associated with the current value of h_errno on stderr."
> 
> ie for printing errors of gethostbyname() and gethostbyaddr()

Ugly, especially since there seems to be no way to get these strings
without printing them to stderr...

> > > mallinfo
> > > 	libfirm
> > 
> > Deprecated API but we could provide a dummy anyway.
> 
> it's so ugly with the signed int counters, i wouldnt
> support if it's not widely used
> 
> i think libfirm can be fixed: it can either do the accounting
> itself or has no business providing process-wide heap info
> statistics (it is only used for a public diagnostic api)

I thought I remembered other programs using mallinfo too, but maybe
I'm mistaken... The main reason I'd want to provide a dummy is if
there are glibc binaries using it. The range of the counters is fairly
irrelevant; keeping track of the information is prohibitively slow
anyway since it would have to be synchronized between threads on each
call to malloc/free. (glibc does some poor hack keeping this info
per-arena and summarizing it when mallinfo is called, I think...)

> > > TIMESPEC_TO_TIMEVAL
> > > 	libusbx
> > 
> > Perhaps worth adding?
> 
> TIMEVAL_TO_TIMESPEC
> TIMESPEC_TO_TIMEVAL
> 
> are bsd visible in freebsd, default visible in openbsd
> and gnu visible in glibc in sys/time.h
> 
> can be added but only one pkg used it from 10k..

Agreed, it's low priority and we should see if we can just get this
fixed upstream.

> > > c_ispeed, c_ospeed (struct termios members)
> > > 	icdprog
> > 
> > If c_* is reserved we could possibly add these.
> 
> c_* is reserved

I'm a bit hesitant to do anything now for fear of breaking more stuff,
but perhaps just #define __c_[io]speed c_[io]speed would be okay...

> > > libiconv_*
> > > 	odt2txt, ted
> > 
> > Specific symbols ??
> 
> i've seen some iconv failures but these are probably not libc issues
> (similar to the libintl_* case)
> 
> i guess this is just missing -liconv

There should never be a libiconv except on systems that lack iconv in
libc... Maybe this is more mess created by pkgsrc though.

> gcc -o odt2txt -L/usr/lib -Wl,-R/usr/lib odt2txt.o regex.o mem.o strbuf.o kunzip/fileio.o kunzip/zipfile.o -lz
> odt2txt.o: In function `main':
> odt2txt.c:(.text.startup+0x25f): undefined reference to `libiconv_open'
> odt2txt.c:(.text.startup+0x370): undefined reference to `libiconv'
> odt2txt.c:(.text.startup+0x4eb): undefined reference to `libiconv_close'
> odt2txt.c:(.text.startup+0x7e3): undefined reference to `libiconv_open'
> odt2txt.c:(.text.startup+0x8ad): undefined reference to `libiconv'
> odt2txt.c:(.text.startup+0x95a): undefined reference to `libiconvlist'
> collect2: error: ld returned 1 exit status
> 
> and there is hex-a-hop:
> ....
> configure: WARNING: unrecognized options: --with-libiconv-prefix, --with-libintl-prefix

Maybe these options are being passed to lots of (or all) packages in
pkgsrc?

> ....
> text.cpp:447:77: error: invalid conversion from const char** to char** [-fpermissive]
>   iconv(cd, (const char **)&in_buf, &text_length, &out_buf, &text_utf8_length);
>                                                                              ^

Odd that this works anywhere if the type is wrong... Maybe it's gcc
4.8 being more strict than previous versions?

> In file included from /usr/include/SDL/SDL_stdinc.h:74:0,
>                  from /usr/include/SDL/SDL_main.h:26,
>                  from /usr/include/SDL/SDL.h:30,
>                  from video.h:4,
>                  from text.cpp:8:
> /var/pkgsrc/games/hex-a-hop/work/.buildlink/include/iconv.h:81:15: error:   initializing argument 2 of size_t libiconv(libiconv_t, char**, size_t*, char**, size_t*) [-fpermissive]
>  #define iconv libiconv
>                ^
> /var/pkgsrc/games/hex-a-hop/work/.buildlink/include/iconv.h:83:15: note: in expansion of macro iconv
>  extern size_t iconv (iconv_t cd,  char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
> 
> gnuplot misses -liconv as well:

Well, rather it's wrongly trying to use libiconv. My guess is that
pkgsrc is setup for a situation where iconv is not available in libc
and you need libiconv. So the configure mess to prefix libiconv_ to
symbols gets set, but then configure detects iconv in libc and thus
doesn't add -liconv. Then they end up with missing symbols at link
time.

> ....
> /usr/lib/gcc/x86_64-linux-musl/4.8.1/../../../../x86_64-linux-musl/bin/ld: set.o: undefined reference to symbol 'libiconv_open'
> /usr/lib/gcc/x86_64-linux-musl/4.8.1/../../../../x86_64-linux-musl/bin/ld: note: 'libiconv_open' is defined in DSO /usr/lib/libiconv.so.2 so try adding it to the linker command line
> /usr/lib/libiconv.so.2: could not read symbols: Invalid operation
> 
> > > KIOCSOUND, TIOCCDTR, TIOCSDTR, TIOCGSIZE (ioctl)
> > > 	minicom, modemd, beav
> > 
> > These should almost surely be added somewhere...
> 
> there are some other ioctl failures
> but there might be some bsd only things in pkgsrc

Ah, maybe so...

> 
> > > execinfo.h
> > > 	redis, virtuoso, powerdns, packagekit, qt4-creator
> > 
> > Backtrace stuff, right?
> 
> yes
> 
> now i see that redis also uses jemalloc which uses ffsl
> "warning: implicit declaration of function ffsl"
> that's another missing symbol

Probably worth adding.

> > > sys/bitypes.h
> > > 	libbind, libdnsres
> > 
> > We could add this as an alias for sys/types.h with a #warning, if
> > desired. I'm fairly indifferent.
> 
> it is only used by bind (i guess dnsres does the same)
> i wouldnt be surprised if that had other incurable brokenness
> but alias with warning is fine
> 
> > > sys/unistd.h
> > > 	mlview, foobillard, galaxa, slurm
> > 
> > Ditto.
> 
> it seems this is a subset of unistd.h on the bsds
> with just macro definitions on glibc it is an alias
> to unistd.h

Bleh.

> > > sys/endian.h
> > > 	swarm
> > 
> > This could probably be added even without a #warning since it's
> > nonstandard and sys/endian.h is just as "valid" as endian.h, but I'm
> > not clear whether it's worth it for ONE obscure program that could
> > just be fixed.
> 
> yes
> 
> > > net/ppp_defs.h
> > > 	poptop, slurm, xfce4-netload-plugin
> > 
> > Don't know enough to comment.
> 
> glibc includes linux/ppp_defs.h (plus defines some libc types)

I don't have any fundamental objection to having nonstandard headers
like this whose applicability is limited to specialized programs rely
on linux kernel headers (we already have soundcard.h or something),
but it might be better to move them ALL out of musl and into a
separate header package at some point...

> > > sys/dirent.h
> > > 	heirloom-libcommon
> > 
> > Possibly another #warning redirect?
> 
> can be, bsds have it (a subset of dirent.h)
> but glibc does not have it as far as i can tell
> so heirloom should be more clever about it
> (i guess it has some broken ifdef around it)

Perhaps __GLIBC__ :-)

> > > xlocale.h
> > > 	liblive
> > 
> > Since these interfaces were declared in xlocale.h before being
> > standardized in POSIX 2008, it might make sense to provide the header;
> > however, the fact that only one program was found to be needing it
> > makes me doubt the usefulness.
> 
> note that vlc and some other media packages
> depend on liblive, so ppl might want it
> 
> glibc only defines __local_t (and local_t)
> types there

Hmm, so this header doesn't do anything useful... In that case we
should probably just see if liblive can be fixed.

> > > net/if_ether.h
> > > 	cia
> > 
> > Is this a duplicate of the one in netinet or something different?
> 
> as far as i can see it's like netinet/if_ether.h on glibc
> but glibc, freebsd, openbsd dont have it (i can only see
> it in netbsd)
> 
> however netinet/if_ether.h includes net/ethernet.h on
> glibc, but it's the other way around in musl
> (and on glibc both headers include linux/if_ether.h)
> 
> that's probably a bug

In musl or in glibc? :)

> > > fstab.h
> > > 	samba35
> > 
> > Yet another hideous non-threadsafe, non-library-safe *ent API. As long
> > as there's only one program using it my feeling is to omit it.
> 
> samba is probably an important one so it should be
> fixed upstream if not yet done

Yes, I agree.

> > > sys/perm.h
> > > 	xosview
> > 
> > Seems redundant with sys/io.h?
> 
> yes, we could add an alias
> (although on glibc sys/io.h has a bit more stuff)

Yes, I just don't see any use for sys/perm.h without sys/io.h.

> > > gcc-4.8.1 bugs:
> > > 	epic4: exec.c:118:18: internal compiler error: in set_lattice_value, at tree-ssa-ccp.c:451
> > > 	bullet: btInternalEdgeUtility.cpp:310:2: internal compiler error: Segmentation fault
> > > 	aegis fails because in libstdc++ cinttypes header is broken without -std=c++11 or -std=gnu++11
> > > 	boost-libs fail because mm_malloc.h has incompatible posix_memalign decl with throw()
> > 
> > Was gcc built aginst musl? Assuming so, it's _possible_ that some of
> > these are musl bugs, though gcc sounds more likely.
> 
> the mm_malloc.h thing is ugly, i'm not sure who else
> uses that header, but the incompatible prototype
> might bite others (i still dont quite understand
> why extern "C" api needs throw() in glibc)

It's an optimization to tell GCC that the function won't throw an
exception that reaches back to the caller. GCC should assume this by
default, but because GNU C has support for exceptions in C, it
doesn't. So they have to work around their own misfeature to avoid
suboptimal code generation. In musl I just consider that a GCC bug; I
looked for a way to work around it with global compiler flags rather
than ugly header hacks, and was told none exists, so until GCC gets
their act together and fixes this, we can just live with slightly
suboptimal C++ code generation.

> > > 	at least mysql5-client config uses getconf
> > 
> > Hm? We should probably provide a getconf that works with musl
> > somewhere...
> 
> maybe landley could do one for toybox.. :)

I'm not clear on how easy it is to do in a libc-agnostic way, but if
possible that would definitely be a nice solution.

> > > other
> > > 	qt3-libs, ptlib: using signed int for socklen_t
> > 
> > glibc also has unsigned socklen_t, so I'm confused how they work with
> > glibc but not musl...
> 
> yes, this is a mystery, actually the warning is shown for
> many packages but most of them dont use Werror for it
> maybe it's a recent gcc warning (passing int* instead of
> socklen_t* aka unsigned* to interfaces like accept)

Yes, this mismatch is a constraint violation and requires a
diagnostic, but GCC used to fail to issue even a warning for it. Maybe
recent GCC makes it an error by default?

> (and qt3-libs has quite a lot of dependencies, i think
> it is the most wanted failing package on pkgsrc now)

Yes, I would suspect so. If we get it working, we might find lots more
failures in things that depend on it...

> > > 	binutils, mingw-binutils: empty character constant ''
> > 
> > Cause? musl-specific?
> 
> from the pkgsrc logs my guess is a $ got eaten by some tool
> (maybe busybox?)
> 
> binutils builds here just fine (but i build it without bfd)
> 
> earm_epoc_pe.c: In function 'gld_arm_epoc_pe_place_orphan':
> earm_epoc_pe.c:1512:37: error: empty character constant
>        && (dollar = strchr (secname, '')) != NULL)
>                                      ^
> earm_epoc_pe.c:1646:25: error: empty character constant
>       if (strchr (lname, '') == NULL)
>                          ^

I found the offending code in ld/emultempl/pe.em, but I can't figure
out why it's breaking. The line in question is:

      && (dollar = strchr (secname, '\$')) != NULL)

and running that as a here-document on Busybox ash works fine for me;
the literal $ (without the \ before it) makes it into the output.

> > > 	dosbox: uses undefined typename in offsetof
> > 
> > A type musl is missing?
> 
> rechecked and it is missing offsetof
> (so it probably fails to include stddef.h)

So another case of expecting implicit inclusion, most likely.

> > > 	boost/integer_traits.hpp: misses WCHAR_MIN and WCHAR_MAX because of ifdef hell
> > 
> > Oh? Is this their fault or something weird we're doing?
> 
> their fault, ugly ifdef hell instead of just
> including wchar.h to work around broken platforms
> 
> http://boost.cvs.sourceforge.net/viewvc/boost/boost/boost/integer_traits.hpp?view=markup

I guess we should report this upstream. If they don't want to
unconditionally include wchar.h, they could use #ifndef WCHAR_MIN
instead of their silly hard-coded platform list.

> > > 	libjit: #error "Don't know how to determine if floating point numbers are finite"
> > 
> > Is it doing stupid #ifdefs based on glibc version, or failing for some
> > semi-readonable reason?
> 
> dont know, the log only has this message

OK, I guess we'll have to look into this later.

> > > 	tk: tkPanedWindow.o: file not recognized: File truncated
> > 
> > Weird...
> 
> yes the log has no context for it
> and tk is a wanted package on pkgsrc

My best guess is something odd in the makefile that caused the file to
get overwritten with junk, touched as a zero-length file, or similar.

> > > 	cc65, gnats, sandy: undefined siginfo_t because sys/wait.h is used with -std=c89
> > 
> > This is something we need to fix. I'm thinking sys/wait.h should just
> > omit the stuff that needs siginfo_t if the right features are not
> > enabled. (Really, omitting the whole file would be valid, but I
> > suspect this would break programs worse.)
> 
> makes sense

Fixed.

Rich


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-09  5:20             ` Rich Felker
@ 2013-11-09 16:16               ` Szabolcs Nagy
  2013-11-09 16:41                 ` Rich Felker
  2013-11-28  3:23               ` Rob Landley
  1 sibling, 1 reply; 17+ messages in thread
From: Szabolcs Nagy @ 2013-11-09 16:16 UTC (permalink / raw)
  To: musl

* Rich Felker <dalias@aerifal.cx> [2013-11-09 00:20:10 -0500]:
> On Sat, Nov 09, 2013 at 05:02:52AM +0100, Szabolcs Nagy wrote:
> > * Rich Felker <dalias@aerifal.cx> [2013-11-08 20:01:30 -0500]:
> > > > getloadavg
> > > > 	pbzip2, tokyotyrant, distccmon-gnome
> > > 
> > > This would probably be trivial to add.
> > 
> > return -1?
> > 
> > we can add it i guess but these packages could
> > use configure checks (i think they are autoconfed)
> 
> Indeed. Not sure if it's useful; just reading from /proc is just as
> good.

i think it's useless, but looking at codesearch.debian.net
it seems to be used in some packages without correct
fallback so it's probably better if musl provides it

> > > > mallinfo
> > > > 	libfirm
> > > 
> > > Deprecated API but we could provide a dummy anyway.
> > 
> > it's so ugly with the signed int counters, i wouldnt
> > support if it's not widely used
> > 
> > i think libfirm can be fixed: it can either do the accounting
> > itself or has no business providing process-wide heap info
> > statistics (it is only used for a public diagnostic api)
> 
> I thought I remembered other programs using mallinfo too, but maybe
> I'm mistaken... The main reason I'd want to provide a dummy is if
> there are glibc binaries using it. The range of the counters is fairly
> irrelevant; keeping track of the information is prohibitively slow
> anyway since it would have to be synchronized between threads on each
> call to malloc/free. (glibc does some poor hack keeping this info
> per-arena and summarizing it when mallinfo is called, I think...)

i see

> > > > c_ispeed, c_ospeed (struct termios members)
> > > > 	icdprog
> > > 
> > > If c_* is reserved we could possibly add these.
> > 
> > c_* is reserved
> 
> I'm a bit hesitant to do anything now for fear of breaking more stuff,
> but perhaps just #define __c_[io]speed c_[io]speed would be okay...

yes, that is non-intrusive

(glibc has it by default and debian codesearch shows
that other packages use it as well so it makes sense)

> > it seems this is a subset of unistd.h on the bsds
> > with just macro definitions on glibc it is an alias
> > to unistd.h
> 
> Bleh.

since glibc does the same i think a sys/unistd.h -> unistd.h
redirection is acceptable

> > glibc includes linux/ppp_defs.h (plus defines some libc types)
> 
> I don't have any fundamental objection to having nonstandard headers
> like this whose applicability is limited to specialized programs rely
> on linux kernel headers (we already have soundcard.h or something),
> but it might be better to move them ALL out of musl and into a
> separate header package at some point...

> > > > sys/dirent.h
> > > > 	heirloom-libcommon
> > > 
> > > Possibly another #warning redirect?
> > 
> > can be, bsds have it (a subset of dirent.h)
> > but glibc does not have it as far as i can tell
> > so heirloom should be more clever about it
> > (i guess it has some broken ifdef around it)
> 
> Perhaps __GLIBC__ :-)
> 

yes
i think this should be fixed in heirloom

> > > > net/if_ether.h
> > > > 	cia
> > > 
> > > Is this a duplicate of the one in netinet or something different?
> > 
> > as far as i can see it's like netinet/if_ether.h on glibc
> > but glibc, freebsd, openbsd dont have it (i can only see
> > it in netbsd)
> > 
> > however netinet/if_ether.h includes net/ethernet.h on
> > glibc, but it's the other way around in musl
> > (and on glibc both headers include linux/if_ether.h)
> > 
> > that's probably a bug
> 
> In musl or in glibc? :)

musl

assuming glibc is the defacto standard for these headers

we should compare the visible symbols in the two headers
glibc vs musl

> > > > sys/perm.h
> > > > 	xosview
> > > 
> > > Seems redundant with sys/io.h?
> > 
> > yes, we could add an alias
> > (although on glibc sys/io.h has a bit more stuff)
> 
> Yes, I just don't see any use for sys/perm.h without sys/io.h.

i see this header used in a couple of places like

#ifdef __i386__
#include        <sys/perm.h>
#else
#include        <sys/io.h>
#endif

maybe we should add an alias (both are ugly glibc inventions)

> > the mm_malloc.h thing is ugly, i'm not sure who else
> > uses that header, but the incompatible prototype
> > might bite others (i still dont quite understand
> > why extern "C" api needs throw() in glibc)
> 
> It's an optimization to tell GCC that the function won't throw an
> exception that reaches back to the caller. GCC should assume this by
> default, but because GNU C has support for exceptions in C, it
> doesn't. So they have to work around their own misfeature to avoid
> suboptimal code generation. In musl I just consider that a GCC bug; I
> looked for a way to work around it with global compiler flags rather
> than ugly header hacks, and was told none exists, so until GCC gets
> their act together and fixes this, we can just live with slightly
> suboptimal C++ code generation.

this is sad
so c++ code that includes mm_malloc.h and stdlib.h will fail

> > earm_epoc_pe.c: In function 'gld_arm_epoc_pe_place_orphan':
> > earm_epoc_pe.c:1512:37: error: empty character constant
> >        && (dollar = strchr (secname, '')) != NULL)
> >                                      ^
> > earm_epoc_pe.c:1646:25: error: empty character constant
> >       if (strchr (lname, '') == NULL)
> >                          ^
> 
> I found the offending code in ld/emultempl/pe.em, but I can't figure
> out why it's breaking. The line in question is:
> 
>       && (dollar = strchr (secname, '\$')) != NULL)
> 
> and running that as a here-document on Busybox ash works fine for me;
> the literal $ (without the \ before it) makes it into the output.

with the amount of hackery binutils build scripts do
i'm not surprised if this breaks

> > > > 	tk: tkPanedWindow.o: file not recognized: File truncated
> > > 
> > > Weird...
> > 
> > yes the log has no context for it
> > and tk is a wanted package on pkgsrc
> 
> My best guess is something odd in the makefile that caused the file to
> get overwritten with junk, touched as a zero-length file, or similar.

can be another instance of busybox vs bash/coreutils
incompatibility


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-09 16:16               ` Szabolcs Nagy
@ 2013-11-09 16:41                 ` Rich Felker
  2013-11-10 17:14                   ` Szabolcs Nagy
  0 siblings, 1 reply; 17+ messages in thread
From: Rich Felker @ 2013-11-09 16:41 UTC (permalink / raw)
  To: musl; +Cc: Gregor Richards

On Sat, Nov 09, 2013 at 05:16:55PM +0100, Szabolcs Nagy wrote:
> > > > > net/if_ether.h
> > > > > 	cia
> > > > 
> > > > Is this a duplicate of the one in netinet or something different?
> > > 
> > > as far as i can see it's like netinet/if_ether.h on glibc
> > > but glibc, freebsd, openbsd dont have it (i can only see
> > > it in netbsd)
> > > 
> > > however netinet/if_ether.h includes net/ethernet.h on
> > > glibc, but it's the other way around in musl
> > > (and on glibc both headers include linux/if_ether.h)
> > > 
> > > that's probably a bug
> > 
> > In musl or in glibc? :)
> 
> musl
> 
> assuming glibc is the defacto standard for these headers
> 
> we should compare the visible symbols in the two headers
> glibc vs musl

OK.

> > > > > sys/perm.h
> > > > > 	xosview
> > > > 
> > > > Seems redundant with sys/io.h?
> > > 
> > > yes, we could add an alias
> > > (although on glibc sys/io.h has a bit more stuff)
> > 
> > Yes, I just don't see any use for sys/perm.h without sys/io.h.
> 
> i see this header used in a couple of places like
> 
> #ifdef __i386__
> #include        <sys/perm.h>
> #else
> #include        <sys/io.h>
> #endif
> 
> maybe we should add an alias (both are ugly glibc inventions)

Or put just the declarations in sys/perm.h and have sys/io.h include
sys/perm.h. That might be preferable if sys/io.h (intentionally)
breaks on some archs that don't have it.

> > > the mm_malloc.h thing is ugly, i'm not sure who else
> > > uses that header, but the incompatible prototype
> > > might bite others (i still dont quite understand
> > > why extern "C" api needs throw() in glibc)
> > 
> > It's an optimization to tell GCC that the function won't throw an
> > exception that reaches back to the caller. GCC should assume this by
> > default, but because GNU C has support for exceptions in C, it
> > doesn't. So they have to work around their own misfeature to avoid
> > suboptimal code generation. In musl I just consider that a GCC bug; I
> > looked for a way to work around it with global compiler flags rather
> > than ugly header hacks, and was told none exists, so until GCC gets
> > their act together and fixes this, we can just live with slightly
> > suboptimal C++ code generation.
> 
> this is sad
> so c++ code that includes mm_malloc.h and stdlib.h will fail

What is mm_malloc.h and why is it declaring malloc itself rather than
including stdlib.h?

> > > earm_epoc_pe.c: In function 'gld_arm_epoc_pe_place_orphan':
> > > earm_epoc_pe.c:1512:37: error: empty character constant
> > >        && (dollar = strchr (secname, '')) != NULL)
> > >                                      ^
> > > earm_epoc_pe.c:1646:25: error: empty character constant
> > >       if (strchr (lname, '') == NULL)
> > >                          ^
> > 
> > I found the offending code in ld/emultempl/pe.em, but I can't figure
> > out why it's breaking. The line in question is:
> > 
> >       && (dollar = strchr (secname, '\$')) != NULL)
> > 
> > and running that as a here-document on Busybox ash works fine for me;
> > the literal $ (without the \ before it) makes it into the output.
> 
> with the amount of hackery binutils build scripts do
> i'm not surprised if this breaks

I'm still surprised. I wonder if it's an old version of busybox or
something.

> 
> > > > > 	tk: tkPanedWindow.o: file not recognized: File truncated
> > > > 
> > > > Weird...
> > > 
> > > yes the log has no context for it
> > > and tk is a wanted package on pkgsrc
> > 
> > My best guess is something odd in the makefile that caused the file to
> > get overwritten with junk, touched as a zero-length file, or similar.
> 
> can be another instance of busybox vs bash/coreutils
> incompatibility

Yes, possibly. (Is it possible that "ar" is getting used to make a .a
file and somehow busybox ar is getting used?)

Rich


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-09 16:41                 ` Rich Felker
@ 2013-11-10 17:14                   ` Szabolcs Nagy
  2013-11-10 18:22                     ` Rich Felker
  0 siblings, 1 reply; 17+ messages in thread
From: Szabolcs Nagy @ 2013-11-10 17:14 UTC (permalink / raw)
  To: musl; +Cc: Gregor Richards

* Rich Felker <dalias@aerifal.cx> [2013-11-09 11:41:47 -0500]:
> On Sat, Nov 09, 2013 at 05:16:55PM +0100, Szabolcs Nagy wrote:
> > this is sad
> > so c++ code that includes mm_malloc.h and stdlib.h will fail
> 
> What is mm_malloc.h and why is it declaring malloc itself rather than
> including stdlib.h?
> 

it declares posix_memalign and defined _mm_malloc and _mm_free

i think it was added to gcc so it is possible to allocate memory
for the sse intrinsics with the right alignment (included in
xmmintrin.h which follows the intel and msvc api, see bug report)

and for c++ they add throw() to posix_memalign so it's incompatible
with the libc one hence boost fails to build (or anythning that
uses both xmmintrin.h and stdlib.h)

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16570

> Yes, possibly. (Is it possible that "ar" is getting used to make a .a
> file and somehow busybox ar is getting used?)

i dont know, i think gregor could look into this

===> Building for tk-8.5.14nb3
--- libtk85.so ---
rm -f libtk85.so
gcc -shared -O2 -Wno-error -I/usr/include -I/usr/include/freetype2 -O2 -O2 -Wno-error -I/usr/include -I/usr/include/freetype2 -pipe -I/usr/include -I/usr/include/freetype2  -L/usr/lib -Wl,-R/usr/lib -Wl,--export-dynamic -o libtk85.so tk3d.o tkArgv.o tkAtom.o [..] tkUnixXId.o -lpthread -Wl,-R/usr/lib -lXft -L/usr/lib64 -Wl,-R/usr/lib64 -lX11 -ldl  -lpthread -L/usr/lib -ltclstub85   -Wl,-rpath,/usr/lib
tkPanedWindow.o: file not recognized: File truncated
collect2: error: ld returned 1 exit status

meanwhile i finished scanning the rest of the logs:

missing symbols (compile or link time):

ffsl, ffsll
	redis, qemu

	glibc only api (ffs is bsd as well)
	many pkgs check for ffsl (including redis, which does it incorrectly)
	both redis and qemu silently succeed because implicit declaration
	(and it might even work because it is a gcc builtin)

finite
	tuxracer, clutter-box2d, maude, polyml, see

	these are build failures, but configure is broken for more pkgs.
	AC_CHECK_FUNCS will fail for all macros because it tries to check
	linkage (this is broken in itself but the way the check is done
	is broken as well) and of course that's how most packages check for
	isnan, isinf, isfinite or finite
	some packages only check for finite not isfinite others only try
	to get it from ieeefp.h, so if we provide it, it has to be an
	extern function otherwise php, ruby, etc will continue to use their
	own pitiful implementations (they are lucky that gcc builtins will
	override that)

drem
	xplot

	alias to remainder, i can add it

NETDB_INTERNAL, NETDB_SUCCESS
	ecl, gambc, libspf2, knc
NO_ADDRESS
	ecl, gambc, dovecot, elm-me, bglibs, nullmailer, pptp, rlpr, libghttp

	i think NO_ADDRESS alias is safe to add
	NETDB_* i'm not sure about

TIOCGETP, TIOCSETP
	ucblogo, splitvt

	seem to be non-linux ioctls, there were many
	other non-linux failures i assume they work on glibc
	because of ifdef __GLIBC__

bsd struct tcphdr, TH_*
	darkstat, dnscap, flodo, knock, lft, scamper, tcpflow, tcptrace, trafshow, ipv6-toolkit, portsentry, rid
struct ip_mreq_source
	flow-tools
struct tcp_info
	httping, py27-uwsgi
tcp_seq
	ssldump
struct tcp_md5sig
	quagga
TCP_ESTABLISHED, TCP_LISTEN
	ruby-raindrops

	it maybe useful to add the bsd version of struct tcphdr
	with the TH_* macros under _BSD_SOURCE in netinet/tcp.h
	(i'm not sure if the listed pkgs are supposed to be
	bsd only or not though)

PTHREAD_MUTEX_RECURSIVE_NP
	panomatic
PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
	miredo
PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
	varnish
GLOB_ONLYDIR
	monit
GLOB_TILDE
	GutenMark, remind, i3, libdesktop-agnostic
GLOB_BRACE
	remind, libdesktop-agnostic
HZ
	fujiplay, nntpcache, dvdrecord
CLK_TCK
	euler
_PATH_MOUNTED
	samba35, bacula
_PATH_SENDMAIL
	distribute
WTMPX_FILE
	wterm, vsftpd, rxvt-unicode
_WTMP_FILE
	srp-client
union semun
	buffer
union wait
	tcsh, skkfep, ttyrec, tcx, mxterm
struct dqblk
	wu-ftpd
current_salt (member of struct crypt_data)
	nginx
ut_xtime (member of struct utmpx)
	eterm
encrypt
	claws-mail
herror
	cstream, yafc, newsfetch
re_comp, re_exec
	fep
setnetgrent, getnetgrent, endnetgrent
	netgroup
gwtwd
	vscm
mallinfo
	threadingbuildingblocks
getprogname
	nologinmsg
program_invocation_name
	gchore
getdirentries
	9base
ruserok
	amanda-common
rresvport
	htdig
sigblock, sigsetmask
	ispell
SIGCLD
	openvmps
XCASE
	brandybasic
NCC
	heyu
INADDR_MAX_LOCAL_GROUP
	xorp
_STAT_VER
	fakeroot
__GLIBC__
	lilo explicitly checks for this :)

missing symbol because include or featuretest fail
	maelstrom-x11 fd_set
	moria time_t
	uqm fd_set
	gpspoint EOF
	sane-backends u_char
	py27-numarray FE_INVALID
	mandelbulber fd_set, timeval
	tesseract fd_set, timeval
	dpbox u_char
	scim-ccinput uint
	sj3-client uid_t
	sj3-server uid_t
	chicken NSIG
	konoha timeval
	dcc u_char
	distribute O_RDWR
	dspam u_int32_t
	ja-mh6 O_RDWR
	vanessa_logger CODE
	openfst ssize_t
	qalculate fd_set, timeval
	xfractint O_RDONLY
	mdp LOCK_EX,LOCK_NB,LOCK_UN
	p5-pkgsrc-Dewey ssize_t
	bsdiff u_char
	celestia sprintf
	colorls u_long
	ibutton-pdkit ulong, ushort
	stellarium fd_set
	usbprog ssize_t
	ggrab timeval
	hwdecode-demos timeval
	libdvbpsi ssize_t
	libva-driver-vdpau timeval
	cmu-dhcpd SA_NOMASK
	dhcpcd O_WRONLY, pid_t
	gopher MADV_SEQUENTIAL, caddr_t
	libsscript F_GETFL
	nap u_short
	omniORB usleep, gettimeofday
	p5-Net-RawIP u_int32_t
	partysip u_char
	radiusd-cistron O_RDWR
	libssh mode_t
	sendfile mode_t
	socks4 F_GETFL
	spegla struct statfs
	tcpdpriv struct statfs
	udpcast fd_set
	unworkable u_int32_t
	vde PATH_MAX
	vnstat O_RDONLY
	zsync off_t
	hplip u_char
	pslib uint
	coolkey strlen
	chkrootkit O_RDONLY
	libfprint memmem
	libprelude-python ptrdiff_t
	rainbowcrack u_int64_t
	smtpd O_WRONLY
	acpica-utils pthread_t
	acpidump u_char
	amtterm timeval
	bsign caddr_t
	fs-kit uid_t
	gpart errno
	libhfs time_t
	mtscan O_RDONLY
	pv struct stat64
	radmind u_int
	rtty uchar
	strace PTRACE_PEEKUSER
	wipe u_int32_t
	xfce4-battery-plugin R_OK
	xfce4-diskperf-plugin dev_t
	xfe mode_t
	catdoc int32_t
	highlight stderr
	makeztxt u_long
	rasqal int16_t
	stardic fopen
	notion itimerval
	bozohttpd u_int
	qDecoder O_RDONLY
	vte029 ptsname_r
	xmindpath MAXNAMLEN

busybox and pkgsrc build env failures:

missing tbl and nroff
/bin/sed: No such file or directory
/usr/bin/file: not found
/bin/awk: not found
/usr/bin/fetch: not found
/bin/sh: git: not found
pax: Cannot set permissions on [..] (Not supported)
/bin/sh: scrollkeeper-config: not found
sed: bad option in substitution expression
sed: illegal option: E
ls: illegal option: f
cat: illegal option: v
diff: illegal option: I
sh: no: unknown operand
mount: Out of memory
env: can't execute '/usr/bin/bmake': No such file or directory
env: can't execute '/bin/sh': Out of memory
and link failures for curses, intl, iconv

other kind of build failures:

picoc, pdflib-lite
	sizeof(FILE)
squeak-vm
	static FILE stdoutStack[STDOUT_STACK_SZ];
geomview
	static FILE oldfile;
delegate
	FILE s_FILE;
netsurf
	stdout = stderr;
STk
	#    define READ_DATA_PENDING(fp) (fp->_cnt)
nmh, ja-mh6
	if ((io->_ptr = io->_base))
	io->_cnt = 0;
regionset
	dvd_udf.c:222:9: error: cast to union type from type not present in union
	pos = (fpos64_t)lb_number * (fpos64_t)DVD_VIDEO_LB_LEN;
libgii
	#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
xsc
	checking for gettimeofday... no
zphoto
	extern int vasprintf (char **ptr, const char *fmt, ...);
molden
	static int linkat = 0;
gauche, mercury
	/usr/include/asm/sigcontext.h:134:8: error: redefinition of 'struct _fpstate'
	/usr/include/asm/sigcontext.h:157:8: error: redefinition of 'struct sigcontext'
	/usr/include/bits/signal.h:44:8: note: originally defined here
gcc47
	error: conflicting types for 'size_t'
	(gcc stddef vs musl alltypes)
swi-prolog-lite
	error: conflicting types for '__assert_fail'
bing
	sysdep.h:74:19: error: 'IPOPT_EOL' undeclared (first use in this function)
	#define IPOPT_EOL IPOPT_END
	(in musl IPOPT_END is defined as IPOPT_EOL)
tcpreplay
	typedef int socklen_t;
microdc2, rc, elinks
	error: incompatible types when assigning to type 'va_list' from type 'struct __va_list_tag *'
couriertcpd
	configure: error: I give up -- neither wait nor wait3 works properly
pspp, gnuls, findutils, libunistring
	fseterr.c:72:3: error: #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
exim-4
	ld: cannot find -lnsl
mush
	gcc: error: unrecognized command line option '-fwritable-strings'
mutt
	error: "Could not determine where new mail is stored."
clamav
	configure: error: C++ compiler cannot create executables
fityk
	g++: internal compiler error: Killed (program cc1plus)
dirac
	std::abs(double) -> double, fails in int context
	if ( (std::abs(m_coeff_data[j][i])<<2) >= u_threshold )
	val = std::max( val , std::abs(m_coeff_data[j][i]) );
aiccu, ettercap, openvpn, rp-pppoe, vpnc, socat, tinc
	linux/if_ether.h:126:8: error: redefinition of 'struct ethhdr'
	netinet/if_ether.h:93:8: error: redefinition of 'struct ethhdr'
cfengine
	linux/if.h:137:8: error: redefinition of 'struct ifmap'



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-10 17:14                   ` Szabolcs Nagy
@ 2013-11-10 18:22                     ` Rich Felker
  0 siblings, 0 replies; 17+ messages in thread
From: Rich Felker @ 2013-11-10 18:22 UTC (permalink / raw)
  To: musl; +Cc: Gregor Richards

On Sun, Nov 10, 2013 at 06:14:13PM +0100, Szabolcs Nagy wrote:
> * Rich Felker <dalias@aerifal.cx> [2013-11-09 11:41:47 -0500]:
> > On Sat, Nov 09, 2013 at 05:16:55PM +0100, Szabolcs Nagy wrote:
> > > this is sad
> > > so c++ code that includes mm_malloc.h and stdlib.h will fail
> > 
> > What is mm_malloc.h and why is it declaring malloc itself rather than
> > including stdlib.h?
> > 
> 
> it declares posix_memalign and defined _mm_malloc and _mm_free
> 
> i think it was added to gcc so it is possible to allocate memory
> for the sse intrinsics with the right alignment (included in
> xmmintrin.h which follows the intel and msvc api, see bug report)
> 
> and for c++ they add throw() to posix_memalign so it's incompatible
> with the libc one hence boost fails to build (or anythning that
> uses both xmmintrin.h and stdlib.h)
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16570

I see. Well eseentially, the "linux" mm_malloc.h in gcc is
glibc-specific, then. (BTW, if these prototypes are incompatible, I
think it also means the glibc prototypes are non-conforming to the C++
standard, but that's an entirely separare issue.) I'm not sure what
the proper fix is, though. Would declaring the extern function with
scope local to the _mm_malloc function, rather than file scope, fix
the problem? If so, that could probably be upstreamed in gcc. Another
valid gcc-level fix would be:

extern "C" int __gcc_posix_memalign (void **, size_t, size_t)
    __attribute__((__alias__("posix_memalign"))) throw ();

I'm leaning towards considering this the superior fix, as it also
avoids polluting the namespace with posix_memalign like gcc is
currently doing.

Rich


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-09  5:20             ` Rich Felker
  2013-11-09 16:16               ` Szabolcs Nagy
@ 2013-11-28  3:23               ` Rob Landley
  2013-11-29 17:49                 ` Rich Felker
  1 sibling, 1 reply; 17+ messages in thread
From: Rob Landley @ 2013-11-28  3:23 UTC (permalink / raw)
  To: musl; +Cc: musl

On 11/08/2013 11:20:10 PM, Rich Felker wrote:
> On Sat, Nov 09, 2013 at 05:02:52AM +0100, Szabolcs Nagy wrote:
> > * Rich Felker <dalias@aerifal.cx> [2013-11-08 20:01:30 -0500]:
> > > > 	at least mysql5-client config uses getconf
> > >
> > > Hm? We should probably provide a getconf that works with musl
> > > somewhere...
> >
> > maybe landley could do one for toybox.. :)
> 
> I'm not clear on how easy it is to do in a libc-agnostic way, but if
> possible that would definitely be a nice solution.

It's already in the toybox roadmap because posix specifies it:

   http;//landley.net/toybox/roadmap.html
   http://opengroup.org/onlinepubs/9699919799/utilities/getconf.html

And they say it stacks on top of sysconf(), confstr(), and limits.h.  
Plus the implementation may add "other local values"...

Rob

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Latest pkgsrc results [What builds on musl 0.9.13?]
  2013-11-28  3:23               ` Rob Landley
@ 2013-11-29 17:49                 ` Rich Felker
  0 siblings, 0 replies; 17+ messages in thread
From: Rich Felker @ 2013-11-29 17:49 UTC (permalink / raw)
  To: musl

On Wed, Nov 27, 2013 at 09:23:27PM -0600, Rob Landley wrote:
> On 11/08/2013 11:20:10 PM, Rich Felker wrote:
> >On Sat, Nov 09, 2013 at 05:02:52AM +0100, Szabolcs Nagy wrote:
> >> * Rich Felker <dalias@aerifal.cx> [2013-11-08 20:01:30 -0500]:
> >> > > 	at least mysql5-client config uses getconf
> >> >
> >> > Hm? We should probably provide a getconf that works with musl
> >> > somewhere...
> >>
> >> maybe landley could do one for toybox.. :)
> >
> >I'm not clear on how easy it is to do in a libc-agnostic way, but if
> >possible that would definitely be a nice solution.
> 
> It's already in the toybox roadmap because posix specifies it:
> 
>   http;//landley.net/toybox/roadmap.html
>   http://opengroup.org/onlinepubs/9699919799/utilities/getconf.html
> 
> And they say it stacks on top of sysconf(), confstr(), and limits.h.
> Plus the implementation may add "other local values"...

Adding the "other local values" is the only problematic part, since
there's no portable way to enumerate them. You could probably use some
$CC -dM magic to get a list of the SC_*, PC_*, and CS_* macros though.

Rich


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2013-11-29 17:49 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-07  0:34 Latest pkgsrc results [What builds on musl 0.9.13?] Gregor Richards
2013-11-07  2:01 ` Szabolcs Nagy
2013-11-07  2:22   ` Gregor Richards
2013-11-07  2:46     ` Szabolcs Nagy
2013-11-07 23:46       ` Szabolcs Nagy
2013-11-08 10:48         ` John Spencer
2013-11-09  1:01         ` Rich Felker
2013-11-09  4:02           ` Szabolcs Nagy
2013-11-09  5:20             ` Rich Felker
2013-11-09 16:16               ` Szabolcs Nagy
2013-11-09 16:41                 ` Rich Felker
2013-11-10 17:14                   ` Szabolcs Nagy
2013-11-10 18:22                     ` Rich Felker
2013-11-28  3:23               ` Rob Landley
2013-11-29 17:49                 ` Rich Felker
2013-11-07  4:50 ` Kurt H Maier
2013-11-07 13:19   ` Kurt H Maier

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).