Make improvements

- This commit mints a new release of APE Loader v1.2 which supports
  loading ELF programs with a non-contiguous virtual address layout
  even though we've never been able to take advantage of it, due to
  how `objcopy -SO binary` fills any holes left by PT_LOAD. This'll
  change soon, since we'll have a new way of creating APE binaries.

- The undiamonding trick with our ioctl() implementation is removed
  since POSIX has been killing ioctl() for years and they've done a
  much better job. One problem it resolves, is that ioctl(FIONREAD)
  wasn't working earlier and that caused issues when building Emacs
This commit is contained in:
Justine Tunney 2023-07-11 04:29:33 -07:00
parent a1b1fdd1a4
commit 1ee2e89326
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
53 changed files with 1155 additions and 1255 deletions

View file

@ -155,73 +155,74 @@ extern const uint32_t CRTSCTS;
#define FF1 FF1
#define FF2 FF2
#define CLOCAL CLOCAL
#define CREAD CREAD
#define CS5 CS5
#define CS6 CS6
#define CS7 CS7
#define CS8 CS8
#define CSIZE CSIZE
#define CSTOPB CSTOPB
#define ECHO 8
#define ECHOCTL ECHOCTL
#define ECHOE ECHOE
#define ECHOK ECHOK
#define ECHOKE ECHOKE
#define ECHONL ECHONL
#define ECHOPRT ECHOPRT
#define EXTPROC EXTPROC
#define FLUSHO FLUSHO
#define HUPCL HUPCL
#define ICANON ICANON
#define IEXTEN IEXTEN
#define ISIG ISIG
#define IUCLC IUCLC
#define IUTF8 IUTF8
#define IXOFF IXOFF
#define IXON IXON
#define NOFLSH NOFLSH
#define OCRNL OCRNL
#define OFDEL OFDEL
#define OFILL OFILL
#define OLCUC OLCUC
#define ONLCR ONLCR
#define ONLRET ONLRET
#define ONOCR ONOCR
#define PARENB PARENB
#define PARODD PARODD
#define PENDIN PENDIN
#define TIOCCONS TIOCCONS
#define TIOCGETD TIOCGETD
#define TIOCGWINSZ TIOCGWINSZ
#define TIOCNOTTY TIOCNOTTY
#define TIOCNXCL TIOCNXCL
#define TIOCOUTQ TIOCOUTQ
#define TIOCSCTTY TIOCSCTTY
#define TIOCSETD TIOCSETD
#define TIOCSIG TIOCSIG
#define TIOCSPGRP TIOCSPGRP
#define TIOCSTI TIOCSTI
#define TIOCSWINSZ TIOCSWINSZ
#define TOSTOP TOSTOP
#define VDISCARD VDISCARD
#define VEOF VEOF
#define VEOL VEOL
#define VEOL2 VEOL2
#define VERASE VERASE
#define VINTR VINTR
#define VKILL VKILL
#define VLNEXT VLNEXT
#define VMIN VMIN
#define VQUIT VQUIT
#define VREPRINT VREPRINT
#define VSTART VSTART
#define VSTOP VSTOP
#define VSUSP VSUSP
#define VSWTC VSWTC
#define VTIME VTIME
#define VWERASE VWERASE
#define XCASE XCASE
#define CLOCAL CLOCAL
#define CREAD CREAD
#define CS5 CS5
#define CS6 CS6
#define CS7 CS7
#define CS8 CS8
#define CSIZE CSIZE
#define CSTOPB CSTOPB
#define ECHO 8
#define ECHOCTL ECHOCTL
#define ECHOE ECHOE
#define ECHOK ECHOK
#define ECHOKE ECHOKE
#define ECHONL ECHONL
#define ECHOPRT ECHOPRT
#define EXTPROC EXTPROC
#define FLUSHO FLUSHO
#define HUPCL HUPCL
#define ICANON ICANON
#define IEXTEN IEXTEN
#define ISIG ISIG
#define IUCLC IUCLC
#define IUTF8 IUTF8
#define IXOFF IXOFF
#define IXON IXON
#define NOFLSH NOFLSH
#define OCRNL OCRNL
#define OFDEL OFDEL
#define OFILL OFILL
#define OLCUC OLCUC
#define ONLCR ONLCR
#define ONLRET ONLRET
#define ONOCR ONOCR
#define PARENB PARENB
#define PARODD PARODD
#define PENDIN PENDIN
#define TOSTOP TOSTOP
#define VDISCARD VDISCARD
#define VEOF VEOF
#define VEOL VEOL
#define VEOL2 VEOL2
#define VERASE VERASE
#define VINTR VINTR
#define VKILL VKILL
#define VLNEXT VLNEXT
#define VMIN VMIN
#define VQUIT VQUIT
#define VREPRINT VREPRINT
#define VSTART VSTART
#define VSTOP VSTOP
#define VSUSP VSUSP
#define VSWTC VSWTC
#define VTIME VTIME
#define VWERASE VWERASE
#define XCASE XCASE
/* terminal ioctls */
#define TIOCGWINSZ TIOCGWINSZ /* get tty dimensions */
#define TIOCSWINSZ TIOCSWINSZ /* set tty dimensions */
#define TIOCCONS TIOCCONS /* redirect terminal */
#define TIOCGETD TIOCGETD /* get line discipline */
#define TIOCSETD TIOCSETD /* set line discipline */
#define TIOCNOTTY TIOCNOTTY /* give up terminal */
#define TIOCNXCL TIOCNXCL /* disable exclusive mode */
#define TIOCOUTQ TIOCOUTQ /* bytes in output buffer */
#define TIOCSCTTY TIOCSCTTY /* make controlling terminal */
#define TIOCSIG TIOCSIG /* generate pty signal */
#define TIOCSTI TIOCSTI /* insert fake tty input */
/* tcsetattr() */
#define TCSANOW 0