Fix bugs in cosmocc toolchain

This change integrates e58abc1110b335a3341e8ad5821ad8e3880d9bb2 from
https://github.com/ahgamut/musl-cross-make/ which fixes the issues we
were having with our C language extension for symbolic constants. This
change also performs some code cleanup and bug fixes to getaddrinfo().
It's now possible to compile projects like ncurses, readline and python
without needing to patch anything upstream, except maybe a line or two.
Pretty soon it should be possible to build a Linux distro on Cosmo.
This commit is contained in:
Justine Tunney 2023-06-08 23:44:03 -07:00
parent 22f81a8d50
commit 23e235b7a5
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
272 changed files with 3491 additions and 4350 deletions

View file

@ -1,57 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_IP_H_
#define COSMOPOLITAN_LIBC_SYSV_CONSTS_IP_H_
#include "libc/runtime/symbolic.h"
#define IP_ADD_MEMBERSHIP SYMBOLIC(IP_ADD_MEMBERSHIP)
#define IP_ADD_SOURCE_MEMBERSHIP SYMBOLIC(IP_ADD_SOURCE_MEMBERSHIP)
#define IP_BIND_ADDRESS_NO_PORT SYMBOLIC(IP_BIND_ADDRESS_NO_PORT)
#define IP_BLOCK_SOURCE SYMBOLIC(IP_BLOCK_SOURCE)
#define IP_CHECKSUM SYMBOLIC(IP_CHECKSUM)
#define IP_DEFAULT_MULTICAST_LOOP SYMBOLIC(IP_DEFAULT_MULTICAST_LOOP)
#define IP_DEFAULT_MULTICAST_TTL SYMBOLIC(IP_DEFAULT_MULTICAST_TTL)
#define IP_DROP_MEMBERSHIP SYMBOLIC(IP_DROP_MEMBERSHIP)
#define IP_DROP_SOURCE_MEMBERSHIP SYMBOLIC(IP_DROP_SOURCE_MEMBERSHIP)
#define IP_FREEBIND SYMBOLIC(IP_FREEBIND)
#define IP_HDRINCL SYMBOLIC(IP_HDRINCL)
#define IP_IPSEC_POLICY SYMBOLIC(IP_IPSEC_POLICY)
#define IP_MAX_MEMBERSHIPS SYMBOLIC(IP_MAX_MEMBERSHIPS)
#define IP_MINTTL SYMBOLIC(IP_MINTTL)
#define IP_MSFILTER SYMBOLIC(IP_MSFILTER)
#define IP_MTU SYMBOLIC(IP_MTU)
#define IP_MTU_DISCOVER SYMBOLIC(IP_MTU_DISCOVER)
#define IP_MULTICAST_ALL SYMBOLIC(IP_MULTICAST_ALL)
#define IP_MULTICAST_IF SYMBOLIC(IP_MULTICAST_IF)
#define IP_MULTICAST_LOOP SYMBOLIC(IP_MULTICAST_LOOP)
#define IP_MULTICAST_TTL SYMBOLIC(IP_MULTICAST_TTL)
#define IP_NODEFRAG SYMBOLIC(IP_NODEFRAG)
#define IP_OPTIONS SYMBOLIC(IP_OPTIONS)
#define IP_ORIGDSTADDR SYMBOLIC(IP_ORIGDSTADDR)
#define IP_PASSSEC SYMBOLIC(IP_PASSSEC)
#define IP_PKTINFO SYMBOLIC(IP_PKTINFO)
#define IP_PKTOPTIONS SYMBOLIC(IP_PKTOPTIONS)
#define IP_PMTUDISC SYMBOLIC(IP_PMTUDISC)
#define IP_PMTUDISC_DO SYMBOLIC(IP_PMTUDISC_DO)
#define IP_PMTUDISC_DONT SYMBOLIC(IP_PMTUDISC_DONT)
#define IP_PMTUDISC_INTERFACE SYMBOLIC(IP_PMTUDISC_INTERFACE)
#define IP_PMTUDISC_OMIT SYMBOLIC(IP_PMTUDISC_OMIT)
#define IP_PMTUDISC_PROBE SYMBOLIC(IP_PMTUDISC_PROBE)
#define IP_PMTUDISC_WANT SYMBOLIC(IP_PMTUDISC_WANT)
#define IP_RECVDSTADDR SYMBOLIC(IP_RECVDSTADDR)
#define IP_RECVERR SYMBOLIC(IP_RECVERR)
#define IP_RECVOPTS SYMBOLIC(IP_RECVOPTS)
#define IP_RECVORIGDSTADDR SYMBOLIC(IP_RECVORIGDSTADDR)
#define IP_RECVRETOPTS SYMBOLIC(IP_RECVRETOPTS)
#define IP_RECVTOS SYMBOLIC(IP_RECVTOS)
#define IP_RECVTTL SYMBOLIC(IP_RECVTTL)
#define IP_RETOPTS SYMBOLIC(IP_RETOPTS)
#define IP_ROUTER_ALERT SYMBOLIC(IP_ROUTER_ALERT)
#define IP_TOS SYMBOLIC(IP_TOS)
#define IP_TRANSPARENT SYMBOLIC(IP_TRANSPARENT)
#define IP_TTL SYMBOLIC(IP_TTL)
#define IP_UNBLOCK_SOURCE SYMBOLIC(IP_UNBLOCK_SOURCE)
#define IP_UNICAST_IF SYMBOLIC(IP_UNICAST_IF)
#define IP_XFRM_POLICY SYMBOLIC(IP_XFRM_POLICY)
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
@ -105,6 +53,106 @@ extern const int IP_UNBLOCK_SOURCE;
extern const int IP_UNICAST_IF;
extern const int IP_XFRM_POLICY;
#define IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP
#define IP_ADD_SOURCE_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP
#define IP_BIND_ADDRESS_NO_PORT IP_BIND_ADDRESS_NO_PORT
#define IP_BLOCK_SOURCE IP_BLOCK_SOURCE
#define IP_CHECKSUM IP_CHECKSUM
#define IP_DEFAULT_MULTICAST_LOOP IP_DEFAULT_MULTICAST_LOOP
#define IP_DEFAULT_MULTICAST_TTL IP_DEFAULT_MULTICAST_TTL
#define IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP
#define IP_DROP_SOURCE_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP
#define IP_FREEBIND IP_FREEBIND
#define IP_HDRINCL IP_HDRINCL
#define IP_IPSEC_POLICY IP_IPSEC_POLICY
#define IP_MAX_MEMBERSHIPS IP_MAX_MEMBERSHIPS
#define IP_MINTTL IP_MINTTL
#define IP_MSFILTER IP_MSFILTER
#define IP_MTU IP_MTU
#define IP_MTU_DISCOVER IP_MTU_DISCOVER
#define IP_MULTICAST_ALL IP_MULTICAST_ALL
#define IP_MULTICAST_IF IP_MULTICAST_IF
#define IP_MULTICAST_LOOP IP_MULTICAST_LOOP
#define IP_MULTICAST_TTL IP_MULTICAST_TTL
#define IP_NODEFRAG IP_NODEFRAG
#define IP_OPTIONS IP_OPTIONS
#define IP_ORIGDSTADDR IP_ORIGDSTADDR
#define IP_PASSSEC IP_PASSSEC
#define IP_PKTINFO IP_PKTINFO
#define IP_PKTOPTIONS IP_PKTOPTIONS
#define IP_PMTUDISC IP_PMTUDISC
#define IP_PMTUDISC_DO IP_PMTUDISC_DO
#define IP_PMTUDISC_DONT IP_PMTUDISC_DONT
#define IP_PMTUDISC_INTERFACE IP_PMTUDISC_INTERFACE
#define IP_PMTUDISC_OMIT IP_PMTUDISC_OMIT
#define IP_PMTUDISC_PROBE IP_PMTUDISC_PROBE
#define IP_PMTUDISC_WANT IP_PMTUDISC_WANT
#define IP_RECVDSTADDR IP_RECVDSTADDR
#define IP_RECVERR IP_RECVERR
#define IP_RECVOPTS IP_RECVOPTS
#define IP_RECVORIGDSTADDR IP_RECVORIGDSTADDR
#define IP_RECVRETOPTS IP_RECVRETOPTS
#define IP_RECVTOS IP_RECVTOS
#define IP_RECVTTL IP_RECVTTL
#define IP_RETOPTS IP_RETOPTS
#define IP_ROUTER_ALERT IP_ROUTER_ALERT
#define IP_TOS IP_TOS
#define IP_TRANSPARENT IP_TRANSPARENT
#define IP_TTL IP_TTL
#define IP_UNBLOCK_SOURCE IP_UNBLOCK_SOURCE
#define IP_UNICAST_IF IP_UNICAST_IF
#define IP_XFRM_POLICY IP_XFRM_POLICY
#define __tmpcosmo_IP_ADD_MEMBERSHIP -1321562193
#define __tmpcosmo_IP_ADD_SOURCE_MEMBERSHIP -105214734
#define __tmpcosmo_IP_BIND_ADDRESS_NO_PORT 1524082293
#define __tmpcosmo_IP_BLOCK_SOURCE -197478650
#define __tmpcosmo_IP_CHECKSUM 1604855002
#define __tmpcosmo_IP_DEFAULT_MULTICAST_LOOP 1845412306
#define __tmpcosmo_IP_DEFAULT_MULTICAST_TTL 78428386
#define __tmpcosmo_IP_DROP_MEMBERSHIP -1095356696
#define __tmpcosmo_IP_DROP_SOURCE_MEMBERSHIP 1161532229
#define __tmpcosmo_IP_FREEBIND -492780725
#define __tmpcosmo_IP_HDRINCL -578403232
#define __tmpcosmo_IP_IPSEC_POLICY -1171119592
#define __tmpcosmo_IP_MAX_MEMBERSHIPS -758085748
#define __tmpcosmo_IP_MINTTL 53022500
#define __tmpcosmo_IP_MSFILTER -791684253
#define __tmpcosmo_IP_MTU -379904604
#define __tmpcosmo_IP_MTU_DISCOVER 1351700838
#define __tmpcosmo_IP_MULTICAST_ALL -28373322
#define __tmpcosmo_IP_MULTICAST_IF 327169407
#define __tmpcosmo_IP_MULTICAST_LOOP -2016601761
#define __tmpcosmo_IP_MULTICAST_TTL 60677445
#define __tmpcosmo_IP_NODEFRAG -1549326603
#define __tmpcosmo_IP_OPTIONS 1075977940
#define __tmpcosmo_IP_ORIGDSTADDR 773066970
#define __tmpcosmo_IP_PASSSEC 904572014
#define __tmpcosmo_IP_PKTINFO -1059188119
#define __tmpcosmo_IP_PKTOPTIONS -1589901127
#define __tmpcosmo_IP_PMTUDISC -41501151
#define __tmpcosmo_IP_PMTUDISC_DO 1915857897
#define __tmpcosmo_IP_PMTUDISC_DONT 1947820643
#define __tmpcosmo_IP_PMTUDISC_INTERFACE -1353197859
#define __tmpcosmo_IP_PMTUDISC_OMIT -900368620
#define __tmpcosmo_IP_PMTUDISC_PROBE 28801554
#define __tmpcosmo_IP_PMTUDISC_WANT -565258238
#define __tmpcosmo_IP_RECVDSTADDR -889890721
#define __tmpcosmo_IP_RECVERR -1654149047
#define __tmpcosmo_IP_RECVOPTS 1261356589
#define __tmpcosmo_IP_RECVORIGDSTADDR 1699400438
#define __tmpcosmo_IP_RECVRETOPTS 919008264
#define __tmpcosmo_IP_RECVTOS 453403469
#define __tmpcosmo_IP_RECVTTL 737320736
#define __tmpcosmo_IP_RETOPTS 1069898501
#define __tmpcosmo_IP_ROUTER_ALERT 1014101924
#define __tmpcosmo_IP_TOS -4973360
#define __tmpcosmo_IP_TRANSPARENT 579002269
#define __tmpcosmo_IP_TTL 2114723474
#define __tmpcosmo_IP_UNBLOCK_SOURCE 82069799
#define __tmpcosmo_IP_UNICAST_IF -1900602318
#define __tmpcosmo_IP_XFRM_POLICY 1051426490
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_IP_H_ */