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,67 +1,5 @@
#ifndef COSMOPOLITAN_LIBC_SYSV_CONSTS_IPV6_H_
#define COSMOPOLITAN_LIBC_SYSV_CONSTS_IPV6_H_
#include "libc/runtime/symbolic.h"
#define IPV6_2292DSTOPTS SYMBOLIC(IPV6_2292DSTOPTS)
#define IPV6_2292HOPLIMIT SYMBOLIC(IPV6_2292HOPLIMIT)
#define IPV6_2292HOPOPTS SYMBOLIC(IPV6_2292HOPOPTS)
#define IPV6_2292PKTINFO SYMBOLIC(IPV6_2292PKTINFO)
#define IPV6_2292PKTOPTIONS SYMBOLIC(IPV6_2292PKTOPTIONS)
#define IPV6_2292RTHDR SYMBOLIC(IPV6_2292RTHDR)
#define IPV6_ADDRFORM SYMBOLIC(IPV6_ADDRFORM)
#define IPV6_ADD_MEMBERSHIP SYMBOLIC(IPV6_ADD_MEMBERSHIP)
#define IPV6_AUTHHDR SYMBOLIC(IPV6_AUTHHDR)
#define IPV6_AUTOFLOWLABEL SYMBOLIC(IPV6_AUTOFLOWLABEL)
#define IPV6_CHECKSUM SYMBOLIC(IPV6_CHECKSUM)
#define IPV6_DONTFRAG SYMBOLIC(IPV6_DONTFRAG)
#define IPV6_DROP_MEMBERSHIP SYMBOLIC(IPV6_DROP_MEMBERSHIP)
#define IPV6_DSTOPTS SYMBOLIC(IPV6_DSTOPTS)
#define IPV6_HDRINCL SYMBOLIC(IPV6_HDRINCL)
#define IPV6_HOPLIMIT SYMBOLIC(IPV6_HOPLIMIT)
#define IPV6_HOPOPTS SYMBOLIC(IPV6_HOPOPTS)
#define IPV6_IPSEC_POLICY SYMBOLIC(IPV6_IPSEC_POLICY)
#define IPV6_JOIN_ANYCAST SYMBOLIC(IPV6_JOIN_ANYCAST)
#define IPV6_JOIN_GROUP SYMBOLIC(IPV6_JOIN_GROUP)
#define IPV6_LEAVE_ANYCAST SYMBOLIC(IPV6_LEAVE_ANYCAST)
#define IPV6_LEAVE_GROUP SYMBOLIC(IPV6_LEAVE_GROUP)
#define IPV6_MINHOPCOUNT SYMBOLIC(IPV6_MINHOPCOUNT)
#define IPV6_MTU SYMBOLIC(IPV6_MTU)
#define IPV6_MTU_DISCOVER SYMBOLIC(IPV6_MTU_DISCOVER)
#define IPV6_MULTICAST_HOPS SYMBOLIC(IPV6_MULTICAST_HOPS)
#define IPV6_MULTICAST_IF SYMBOLIC(IPV6_MULTICAST_IF)
#define IPV6_MULTICAST_LOOP SYMBOLIC(IPV6_MULTICAST_LOOP)
#define IPV6_NEXTHOP SYMBOLIC(IPV6_NEXTHOP)
#define IPV6_ORIGDSTADDR SYMBOLIC(IPV6_ORIGDSTADDR)
#define IPV6_PATHMTU SYMBOLIC(IPV6_PATHMTU)
#define IPV6_PKTINFO SYMBOLIC(IPV6_PKTINFO)
#define IPV6_PMTUDISC_DO SYMBOLIC(IPV6_PMTUDISC_DO)
#define IPV6_PMTUDISC_DONT SYMBOLIC(IPV6_PMTUDISC_DONT)
#define IPV6_PMTUDISC_INTERFACE SYMBOLIC(IPV6_PMTUDISC_INTERFACE)
#define IPV6_PMTUDISC_OMIT SYMBOLIC(IPV6_PMTUDISC_OMIT)
#define IPV6_PMTUDISC_PROBE SYMBOLIC(IPV6_PMTUDISC_PROBE)
#define IPV6_PMTUDISC_WANT SYMBOLIC(IPV6_PMTUDISC_WANT)
#define IPV6_RECVDSTOPTS SYMBOLIC(IPV6_RECVDSTOPTS)
#define IPV6_RECVERR SYMBOLIC(IPV6_RECVERR)
#define IPV6_RECVHOPLIMIT SYMBOLIC(IPV6_RECVHOPLIMIT)
#define IPV6_RECVHOPOPTS SYMBOLIC(IPV6_RECVHOPOPTS)
#define IPV6_RECVORIGDSTADDR SYMBOLIC(IPV6_RECVORIGDSTADDR)
#define IPV6_RECVPATHMTU SYMBOLIC(IPV6_RECVPATHMTU)
#define IPV6_RECVPKTINFO SYMBOLIC(IPV6_RECVPKTINFO)
#define IPV6_RECVRTHDR SYMBOLIC(IPV6_RECVRTHDR)
#define IPV6_RECVTCLASS SYMBOLIC(IPV6_RECVTCLASS)
#define IPV6_ROUTER_ALERT SYMBOLIC(IPV6_ROUTER_ALERT)
#define IPV6_RTHDR SYMBOLIC(IPV6_RTHDR)
#define IPV6_RTHDRDSTOPTS SYMBOLIC(IPV6_RTHDRDSTOPTS)
#define IPV6_RTHDR_LOOSE SYMBOLIC(IPV6_RTHDR_LOOSE)
#define IPV6_RTHDR_STRICT SYMBOLIC(IPV6_RTHDR_STRICT)
#define IPV6_RTHDR_TYPE_0 SYMBOLIC(IPV6_RTHDR_TYPE_0)
#define IPV6_RXDSTOPTS SYMBOLIC(IPV6_RXDSTOPTS)
#define IPV6_RXHOPOPTS SYMBOLIC(IPV6_RXHOPOPTS)
#define IPV6_TCLASS SYMBOLIC(IPV6_TCLASS)
#define IPV6_UNICAST_HOPS SYMBOLIC(IPV6_UNICAST_HOPS)
#define IPV6_V6ONLY SYMBOLIC(IPV6_V6ONLY)
#define IPV6_XFRM_POLICY SYMBOLIC(IPV6_XFRM_POLICY)
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
@ -125,6 +63,126 @@ extern const int IPV6_UNICAST_HOPS;
extern const int IPV6_V6ONLY;
extern const int IPV6_XFRM_POLICY;
#define IPV6_2292DSTOPTS IPV6_2292DSTOPTS
#define IPV6_2292HOPLIMIT IPV6_2292HOPLIMIT
#define IPV6_2292HOPOPTS IPV6_2292HOPOPTS
#define IPV6_2292PKTINFO IPV6_2292PKTINFO
#define IPV6_2292PKTOPTIONS IPV6_2292PKTOPTIONS
#define IPV6_2292RTHDR IPV6_2292RTHDR
#define IPV6_ADDRFORM IPV6_ADDRFORM
#define IPV6_ADD_MEMBERSHIP IPV6_ADD_MEMBERSHIP
#define IPV6_AUTHHDR IPV6_AUTHHDR
#define IPV6_AUTOFLOWLABEL IPV6_AUTOFLOWLABEL
#define IPV6_CHECKSUM IPV6_CHECKSUM
#define IPV6_DONTFRAG IPV6_DONTFRAG
#define IPV6_DROP_MEMBERSHIP IPV6_DROP_MEMBERSHIP
#define IPV6_DSTOPTS IPV6_DSTOPTS
#define IPV6_HDRINCL IPV6_HDRINCL
#define IPV6_HOPLIMIT IPV6_HOPLIMIT
#define IPV6_HOPOPTS IPV6_HOPOPTS
#define IPV6_IPSEC_POLICY IPV6_IPSEC_POLICY
#define IPV6_JOIN_ANYCAST IPV6_JOIN_ANYCAST
#define IPV6_JOIN_GROUP IPV6_JOIN_GROUP
#define IPV6_LEAVE_ANYCAST IPV6_LEAVE_ANYCAST
#define IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP
#define IPV6_MINHOPCOUNT IPV6_MINHOPCOUNT
#define IPV6_MTU IPV6_MTU
#define IPV6_MTU_DISCOVER IPV6_MTU_DISCOVER
#define IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS
#define IPV6_MULTICAST_IF IPV6_MULTICAST_IF
#define IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP
#define IPV6_NEXTHOP IPV6_NEXTHOP
#define IPV6_ORIGDSTADDR IPV6_ORIGDSTADDR
#define IPV6_PATHMTU IPV6_PATHMTU
#define IPV6_PKTINFO IPV6_PKTINFO
#define IPV6_PMTUDISC_DO IPV6_PMTUDISC_DO
#define IPV6_PMTUDISC_DONT IPV6_PMTUDISC_DONT
#define IPV6_PMTUDISC_INTERFACE IPV6_PMTUDISC_INTERFACE
#define IPV6_PMTUDISC_OMIT IPV6_PMTUDISC_OMIT
#define IPV6_PMTUDISC_PROBE IPV6_PMTUDISC_PROBE
#define IPV6_PMTUDISC_WANT IPV6_PMTUDISC_WANT
#define IPV6_RECVDSTOPTS IPV6_RECVDSTOPTS
#define IPV6_RECVERR IPV6_RECVERR
#define IPV6_RECVHOPLIMIT IPV6_RECVHOPLIMIT
#define IPV6_RECVHOPOPTS IPV6_RECVHOPOPTS
#define IPV6_RECVORIGDSTADDR IPV6_RECVORIGDSTADDR
#define IPV6_RECVPATHMTU IPV6_RECVPATHMTU
#define IPV6_RECVPKTINFO IPV6_RECVPKTINFO
#define IPV6_RECVRTHDR IPV6_RECVRTHDR
#define IPV6_RECVTCLASS IPV6_RECVTCLASS
#define IPV6_ROUTER_ALERT IPV6_ROUTER_ALERT
#define IPV6_RTHDR IPV6_RTHDR
#define IPV6_RTHDRDSTOPTS IPV6_RTHDRDSTOPTS
#define IPV6_RTHDR_LOOSE IPV6_RTHDR_LOOSE
#define IPV6_RTHDR_STRICT IPV6_RTHDR_STRICT
#define IPV6_RTHDR_TYPE_0 IPV6_RTHDR_TYPE_0
#define IPV6_RXDSTOPTS IPV6_RXDSTOPTS
#define IPV6_RXHOPOPTS IPV6_RXHOPOPTS
#define IPV6_TCLASS IPV6_TCLASS
#define IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS
#define IPV6_V6ONLY IPV6_V6ONLY
#define IPV6_XFRM_POLICY IPV6_XFRM_POLICY
#define __tmpcosmo_IPV6_2292DSTOPTS 678069209
#define __tmpcosmo_IPV6_2292HOPLIMIT 1561068259
#define __tmpcosmo_IPV6_2292HOPOPTS 1907714767
#define __tmpcosmo_IPV6_2292PKTINFO 356029652
#define __tmpcosmo_IPV6_2292PKTOPTIONS 117081374
#define __tmpcosmo_IPV6_2292RTHDR 1636035669
#define __tmpcosmo_IPV6_ADDRFORM -1054757172
#define __tmpcosmo_IPV6_ADD_MEMBERSHIP -1680307522
#define __tmpcosmo_IPV6_AUTHHDR -1947213388
#define __tmpcosmo_IPV6_AUTOFLOWLABEL -1657222883
#define __tmpcosmo_IPV6_CHECKSUM -1542493753
#define __tmpcosmo_IPV6_DONTFRAG 189943592
#define __tmpcosmo_IPV6_DROP_MEMBERSHIP 1820062161
#define __tmpcosmo_IPV6_DSTOPTS -1331897775
#define __tmpcosmo_IPV6_HDRINCL -1699190495
#define __tmpcosmo_IPV6_HOPLIMIT -343952270
#define __tmpcosmo_IPV6_HOPOPTS -394761213
#define __tmpcosmo_IPV6_IPSEC_POLICY -2131021232
#define __tmpcosmo_IPV6_JOIN_ANYCAST 335351523
#define __tmpcosmo_IPV6_JOIN_GROUP 1555568929
#define __tmpcosmo_IPV6_LEAVE_ANYCAST 501463808
#define __tmpcosmo_IPV6_LEAVE_GROUP -1539743215
#define __tmpcosmo_IPV6_MINHOPCOUNT 1901629805
#define __tmpcosmo_IPV6_MTU 131760667
#define __tmpcosmo_IPV6_MTU_DISCOVER -1763058519
#define __tmpcosmo_IPV6_MULTICAST_HOPS 1551727279
#define __tmpcosmo_IPV6_MULTICAST_IF 1035413489
#define __tmpcosmo_IPV6_MULTICAST_LOOP -2077388688
#define __tmpcosmo_IPV6_NEXTHOP -1526051079
#define __tmpcosmo_IPV6_ORIGDSTADDR -957168735
#define __tmpcosmo_IPV6_PATHMTU -1790974186
#define __tmpcosmo_IPV6_PKTINFO 1905020529
#define __tmpcosmo_IPV6_PMTUDISC_DO -251721867
#define __tmpcosmo_IPV6_PMTUDISC_DONT 1152249305
#define __tmpcosmo_IPV6_PMTUDISC_INTERFACE 2128741179
#define __tmpcosmo_IPV6_PMTUDISC_OMIT -1459360179
#define __tmpcosmo_IPV6_PMTUDISC_PROBE 1737493952
#define __tmpcosmo_IPV6_PMTUDISC_WANT -231692414
#define __tmpcosmo_IPV6_RECVDSTOPTS 2118319635
#define __tmpcosmo_IPV6_RECVERR 743926555
#define __tmpcosmo_IPV6_RECVHOPLIMIT -213901102
#define __tmpcosmo_IPV6_RECVHOPOPTS -2068065960
#define __tmpcosmo_IPV6_RECVORIGDSTADDR -1432385217
#define __tmpcosmo_IPV6_RECVPATHMTU -2019840272
#define __tmpcosmo_IPV6_RECVPKTINFO 844434218
#define __tmpcosmo_IPV6_RECVRTHDR -1243605968
#define __tmpcosmo_IPV6_RECVTCLASS 38392473
#define __tmpcosmo_IPV6_ROUTER_ALERT -1302625266
#define __tmpcosmo_IPV6_RTHDR 238156690
#define __tmpcosmo_IPV6_RTHDRDSTOPTS 872395219
#define __tmpcosmo_IPV6_RTHDR_LOOSE -2022259083
#define __tmpcosmo_IPV6_RTHDR_STRICT 1510455360
#define __tmpcosmo_IPV6_RTHDR_TYPE_0 -1059520334
#define __tmpcosmo_IPV6_RXDSTOPTS 838357545
#define __tmpcosmo_IPV6_RXHOPOPTS -296413457
#define __tmpcosmo_IPV6_TCLASS 251757835
#define __tmpcosmo_IPV6_UNICAST_HOPS -774486644
#define __tmpcosmo_IPV6_V6ONLY -1291858455
#define __tmpcosmo_IPV6_XFRM_POLICY 774963753
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_IPV6_H_ */