public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* PlayStation 2 newlib port
@ 2023-06-13 18:31 Francisco Javier Trujillo Mata
  2023-06-19 20:41 ` Jeff Johnston
  0 siblings, 1 reply; 5+ messages in thread
From: Francisco Javier Trujillo Mata @ 2023-06-13 18:31 UTC (permalink / raw)
  To: newlib


[-- Attachment #1.1: Type: text/plain, Size: 1087 bytes --]

Hi there!
I would like to mainstream the PS2 newlib port. So far the PS2 has had
newlib ports for years, however, it was never intended to be merged into
the mainstream.

I'm now trying to port to the latest release 4.3.0, however, I'm suffering
some errors during the compilation process.

I have attached the changes that I have done so far.
Then I just rerun the command `autoreconf` using the proper autoconf and
automake versions

I execute `configure` with:

PROC_NR=$(getconf _NPROCESSORS_ONLN)

TARGET="mips64r5900el-ps2-elf"
TARGET_ALIAS="ee"

## Create and enter the toolchain/build directory
rm -rf "build-$TARGET"
mkdir "build-$TARGET"
cd "build-$TARGET"

## Configure the build.
CFLAGS_FOR_TARGET="-O2" ../configure \
--prefix="$PS2DEV/$TARGET_ALIAS" \
--target="$TARGET" \
--enable-newlib-retargetable-locking \
$TARG_XTRA_OPTS

## Compile and install.
make -j "$PROC_NR" all


And then it always fails with this error,

fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
file or directory

Could you help me to identify where the issue is?

Cheers.

[-- Attachment #2: newlib-9305e82-Add specific r5900 machine and ps2 sys.patch --]
[-- Type: application/octet-stream, Size: 9185 bytes --]

From 9305e82aa11c15f6cc8ebceba13a297c735dfe03 Mon Sep 17 00:00:00 2001
From: Francisco Javier Trujillo Mata <fran.t.es@sync.money>
Date: Wed, 24 Feb 2021 11:48:14 +0100
Subject: [PATCH] Add specific r5900 machine and ps2 sys

- Do not use libgloss (we have ps2sdk)
- Use newlib reentrant syscalls
- Use posix functions
- Exclude OPENDIR functions
- Add -G0 in the newlib_cflags
- Fix time.h should have nanosleep defined
- Fix setjmp for R5900 CPU
- Add _POSIX_MONOTONIC_CLOCK to features
---
 configure                              |   3 +
 newlib/configure.host                  |  13 ++++
 newlib/libc/acinclude.m4               |   3 +-
 newlib/libc/include/machine/setjmp.h   |   9 ++-
 newlib/libc/include/sys/features.h     |   5 ++
 newlib/libc/machine/Makefile.inc       |   3 +
 newlib/libc/machine/r5900/Makefile.inc |   1 +
 newlib/libc/machine/r5900/setjmp.S     | 104 +++++++++++++++++++++++++
 newlib/libc/sys/Makefile.inc           |   3 +
 newlib/libc/sys/ps2/Makefile.inc       |   0
 newlib/libc/sys/ps2/crt0.c             |   3 +
 newlib/libc/sys/ps2/machine/_types.h   |   9 +++
 newlib/libc/sys/ps2/sys/dirent.h       |  23 ++++++
 13 files changed, 177 insertions(+), 2 deletions(-)
 create mode 100644 newlib/libc/machine/r5900/Makefile.inc
 create mode 100644 newlib/libc/machine/r5900/setjmp.S
 create mode 100644 newlib/libc/sys/ps2/Makefile.inc
 create mode 100644 newlib/libc/sys/ps2/crt0.c
 create mode 100644 newlib/libc/sys/ps2/machine/_types.h
 create mode 100644 newlib/libc/sys/ps2/sys/dirent.h

diff --git a/configure b/configure
index eb0ba840b..44ed93b67 100755
--- a/configure
+++ b/configure
@@ -3971,6 +3971,9 @@ case "${target}" in
   | mips*-*-irix* | mips*-*-lnews* | mips*-*-riscos*)
     noconfigdirs="$noconfigdirs ld gas gprof"
     ;;
+  mips*-ps2-*)
+    noconfigdirs="$noconfigdirs gprof target-libgloss"
+    ;;
   mips*-*-*)
     noconfigdirs="$noconfigdirs gprof"
     ;;
diff --git a/newlib/configure.host b/newlib/configure.host
index 0a1ba282a..2cd48ddeb 100644
--- a/newlib/configure.host
+++ b/newlib/configure.host
@@ -245,6 +245,10 @@ case "${host_cpu}" in
   mep)
 	machine_dir=mep
 	;;
+  mips64r5900*)
+  	machine_dir=r5900
+	newlib_cflags="${newlib_cflags} -DMALLOC_ALIGNMENT=16"
+	;;
   mips*)
 	machine_dir=mips
 	libm_machine_dir=mips
@@ -520,6 +524,11 @@ case "${host}" in
   microblaze*-*-*)
 	machine_dir=microblaze
 	;;
+  mips*-ps2-*)
+  	sys_dir=ps2
+  	posix_dir=posix
+  	newlib_cflags="${newlib_cflags} -G0 -DHAVE_NANOSLEEP -DHAVE_OPENDIR"
+	;;
   mmix-knuth-mmixware)
 	sys_dir=mmixware
 	;;
@@ -759,6 +768,10 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID
 	default_newlib_io_long_long="yes"
 	newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
 	;;
+  mips*-ps2-elf*)
+	syscall_dir=syscalls
+	default_newlib_io_long_long="yes"
+	;;
   mips*-*-elf*)
 	default_newlib_io_long_long="yes"
 	newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
diff --git a/newlib/libc/acinclude.m4 b/newlib/libc/acinclude.m4
index 7cba7db39..073795a29 100644
--- a/newlib/libc/acinclude.m4
+++ b/newlib/libc/acinclude.m4
@@ -19,6 +19,7 @@ m4_foreach_w([SYS_DIR], [
   m88kbug mmixware
   netware
   or1k
+  ps2
   rdos rtems
   sh sysmec sysnec810 sysnecv850 sysvi386 sysvnecv70
   tic80 tirtos
@@ -53,7 +54,7 @@ m4_foreach_w([MACHINE], [
   nds32 necv70 nios2 nvptx
   or1k
   powerpc pru
-  riscv rl78 rx
+  r5900 riscv rl78 rx
   sh sparc spu
   tic4x tic6x tic80
   v850 visium
diff --git a/newlib/libc/include/machine/setjmp.h b/newlib/libc/include/machine/setjmp.h
index 29b76cec1..b6b619f03 100644
--- a/newlib/libc/include/machine/setjmp.h
+++ b/newlib/libc/include/machine/setjmp.h
@@ -129,10 +129,17 @@ _BEGIN_STD_C
 
 #ifdef __mips__
 # if defined(__mips64)
-#  define _JBTYPE long long
+#  if defined(_MIPS_ARCH_R5900)
+    typedef unsigned int jbtype128 __attribute__(( mode(TI) ));
+#   define _JBTYPE jbtype128
+#  else
+#   define _JBTYPE long long
+#  endif
 # endif
 # ifdef __mips_soft_float
 #  define _JBLEN 11
+# elif defined(_MIPS_ARCH_R5900)
+#  define _JBLEN 14
 # else
 #  define _JBLEN 23
 # endif
diff --git a/newlib/libc/include/sys/features.h b/newlib/libc/include/sys/features.h
index 45476ce4a..cfcaf9664 100644
--- a/newlib/libc/include/sys/features.h
+++ b/newlib/libc/include/sys/features.h
@@ -532,6 +532,11 @@ extern "C" {
 
 #endif /* __CYGWIN__ */
 
+#ifdef _MIPS_ARCH_R5900
+# define _POSIX_TIMERS				1
+# define _POSIX_MONOTONIC_CLOCK			200112L
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/newlib/libc/machine/Makefile.inc b/newlib/libc/machine/Makefile.inc
index 8aae2c52c..4113d0264 100644
--- a/newlib/libc/machine/Makefile.inc
+++ b/newlib/libc/machine/Makefile.inc
@@ -124,6 +124,9 @@ endif
 if HAVE_LIBC_MACHINE_PRU
 include %D%/pru/Makefile.inc
 endif
+if HAVE_LIBC_MACHINE_R5900
+include %D%/r5900/Makefile.inc
+endif
 if HAVE_LIBC_MACHINE_RISCV
 include %D%/riscv/Makefile.inc
 endif
diff --git a/newlib/libc/machine/r5900/Makefile.inc b/newlib/libc/machine/r5900/Makefile.inc
new file mode 100644
index 000000000..67137bce4
--- /dev/null
+++ b/newlib/libc/machine/r5900/Makefile.inc
@@ -0,0 +1 @@
+libc_a_SOURCES += %D%/setjmp.S
diff --git a/newlib/libc/machine/r5900/setjmp.S b/newlib/libc/machine/r5900/setjmp.S
new file mode 100644
index 000000000..cda45dcdd
--- /dev/null
+++ b/newlib/libc/machine/r5900/setjmp.S
@@ -0,0 +1,104 @@
+/* This is a simple version of setjmp and longjmp.
+ * Floating point support in. */
+
+#define O_S0	0x00
+#define O_S1	0x10
+#define O_S2	0x20
+#define O_S3	0x30
+#define O_S4	0x40
+#define O_S5	0x50
+#define O_S6	0x60
+#define O_S7	0x70
+#define O_FP	0x80
+#define O_SP	0x90
+#define O_RA	0xa0
+#define O_F20   0xb0
+#define O_F21   0xb4
+#define O_F22   0xb8
+#define O_F23   0xbc
+#define O_F24   0xc0
+#define O_F25   0xc4
+#define O_F26   0xc8
+#define O_F27   0xcc
+#define O_F28   0xd0
+#define O_F29   0xd4
+#define O_F30   0xd8
+#define O_F31   0xdc
+
+/* int setjmp (jmp_buf);  */
+	.globl	setjmp
+	.ent	setjmp
+setjmp:
+	.frame	$sp,0,$31
+
+	sq	$s0, O_S0($a0)
+	sq	$s1, O_S1($a0)
+	sq	$s2, O_S2($a0)
+	sq	$s3, O_S3($a0)
+	sq	$s4, O_S4($a0)
+	sq	$s5, O_S5($a0)
+	sq	$s6, O_S6($a0)
+	sq	$s7, O_S7($a0)
+	sq	$fp, O_FP($a0)
+	sq	$sp, O_SP($a0)
+	sq	$ra, O_RA($a0)
+
+	swc1    $f20, O_F20($a0)
+	swc1    $f21, O_F21($a0)
+	swc1    $f22, O_F22($a0)
+	swc1    $f23, O_F23($a0)
+	swc1    $f24, O_F24($a0)
+	swc1    $f25, O_F25($a0)
+	swc1    $f26, O_F26($a0)
+	swc1    $f27, O_F27($a0)
+	swc1    $f28, O_F28($a0)
+	swc1    $f29, O_F29($a0)
+	swc1    $f30, O_F30($a0)
+	swc1    $f31, O_F31($a0)
+
+
+	move	$v0, $0
+
+	jr	$ra
+
+	.end	setjmp
+
+/* volatile void longjmp (jmp_buf, int);  */
+	.globl	longjmp
+	.ent	longjmp
+longjmp:
+	.frame	$sp,0,$31
+
+	lq	$s0, O_S0($a0)
+	lq	$s1, O_S1($a0)
+	lq	$s2, O_S2($a0)
+	lq	$s3, O_S3($a0)
+	lq	$s4, O_S4($a0)
+	lq	$s5, O_S5($a0)
+	lq	$s6, O_S6($a0)
+	lq	$s7, O_S7($a0)
+	lq	$fp, O_FP($a0)
+	lq	$sp, O_SP($a0)
+	lq	$ra, O_RA($a0)
+
+	lwc1    $f20, O_F20($a0)
+	lwc1    $f21, O_F21($a0)
+	lwc1    $f22, O_F22($a0)
+	lwc1    $f23, O_F23($a0)
+	lwc1    $f24, O_F24($a0)
+	lwc1    $f25, O_F25($a0)
+	lwc1    $f26, O_F26($a0)
+	lwc1    $f27, O_F27($a0)
+	lwc1    $f28, O_F28($a0)
+	lwc1    $f29, O_F29($a0)
+	lwc1    $f30, O_F30($a0)
+	lwc1    $f31, O_F31($a0)
+
+	bne	$a0, $0, 1f
+	li	$a0, 1
+1:
+	move	$v0, $a0
+
+	jr	$ra
+
+	.end longjmp
diff --git a/newlib/libc/sys/Makefile.inc b/newlib/libc/sys/Makefile.inc
index 9f8758934..017dfc044 100644
--- a/newlib/libc/sys/Makefile.inc
+++ b/newlib/libc/sys/Makefile.inc
@@ -31,6 +31,9 @@ endif
 if HAVE_LIBC_SYS_OR1K_DIR
 include %D%/or1k/Makefile.inc
 endif
+if HAVE_LIBC_SYS_PS2_DIR
+include %D%/ps2/Makefile.inc
+endif
 if HAVE_LIBC_SYS_RDOS_DIR
 include %D%/rdos/Makefile.inc
 endif
diff --git a/newlib/libc/sys/ps2/Makefile.inc b/newlib/libc/sys/ps2/Makefile.inc
new file mode 100644
index 000000000..e69de29bb
diff --git a/newlib/libc/sys/ps2/crt0.c b/newlib/libc/sys/ps2/crt0.c
new file mode 100644
index 000000000..d5d534808
--- /dev/null
+++ b/newlib/libc/sys/ps2/crt0.c
@@ -0,0 +1,3 @@
+/* The real crt0.c lives in PS2SDK. */
+
+void _start() { }
\ No newline at end of file
diff --git a/newlib/libc/sys/ps2/machine/_types.h b/newlib/libc/sys/ps2/machine/_types.h
new file mode 100644
index 000000000..b9905d4ea
--- /dev/null
+++ b/newlib/libc/sys/ps2/machine/_types.h
@@ -0,0 +1,9 @@
+#ifndef _MACHINE__TYPES_H
+#define	_MACHINE__TYPES_H
+
+#include <machine/_default_types.h>
+
+typedef	__int64_t	_off_t;
+#define	__machine_off_t_defined
+
+#endif /* _MACHINE__TYPES_H */
diff --git a/newlib/libc/sys/ps2/sys/dirent.h b/newlib/libc/sys/ps2/sys/dirent.h
new file mode 100644
index 000000000..7b504ee11
--- /dev/null
+++ b/newlib/libc/sys/ps2/sys/dirent.h
@@ -0,0 +1,23 @@
+#ifndef _SYS_DIRENT_H
+#define _SYS_DIRENT_H
+
+typedef struct __dirdesc {
+	int	dd_fd;
+	char	*dd_buf;
+} DIR;
+
+# define __dirfd(dp)	((dp)->dd_fd)
+
+#include <sys/stat.h>
+
+#undef  MAXNAMLEN	/* from unistd.h */
+#define MAXNAMLEN	255
+
+#define d_ino	d_fileno	/* compatibility */
+
+struct dirent {
+	struct stat d_stat;
+	char d_name[MAXNAMLEN + 1];
+};
+
+#endif
\ No newline at end of file
-- 
2.37.5


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

* Re: PlayStation 2 newlib port
  2023-06-13 18:31 PlayStation 2 newlib port Francisco Javier Trujillo Mata
@ 2023-06-19 20:41 ` Jeff Johnston
  2023-06-20  7:05   ` Francisco Javier Trujillo Mata
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Johnston @ 2023-06-19 20:41 UTC (permalink / raw)
  To: Francisco Javier Trujillo Mata; +Cc: newlib

[-- Attachment #1: Type: text/plain, Size: 1960 bytes --]

Hi Francisco,

If you would like help, I would suggest you tell others where they can get
a proper toolset to build with or at least
attach your build log which may provide more info.  I certainly don't have
a Playstation 2 toolset hanging around.

In addition, looking at your patches, you are missing copyright/licensing
info for the new files you are adding
(as opposed to existing files you are modifying).  If you are taking code
from another location, you cannot change
their license/copyright.  If you wrote these from scratch you should
indicate this but you still need to add the licensing/copyright
info.

Regards,

-- Jeff J.

On Tue, Jun 13, 2023 at 2:31 PM Francisco Javier Trujillo Mata <
fjtrujy@gmail.com> wrote:

> Hi there!
> I would like to mainstream the PS2 newlib port. So far the PS2 has had
> newlib ports for years, however, it was never intended to be merged into
> the mainstream.
>
> I'm now trying to port to the latest release 4.3.0, however, I'm suffering
> some errors during the compilation process.
>
> I have attached the changes that I have done so far.
> Then I just rerun the command `autoreconf` using the proper autoconf and
> automake versions
>
> I execute `configure` with:
>
> PROC_NR=$(getconf _NPROCESSORS_ONLN)
>
> TARGET="mips64r5900el-ps2-elf"
> TARGET_ALIAS="ee"
>
> ## Create and enter the toolchain/build directory
> rm -rf "build-$TARGET"
> mkdir "build-$TARGET"
> cd "build-$TARGET"
>
> ## Configure the build.
> CFLAGS_FOR_TARGET="-O2" ../configure \
> --prefix="$PS2DEV/$TARGET_ALIAS" \
> --target="$TARGET" \
> --enable-newlib-retargetable-locking \
> $TARG_XTRA_OPTS
>
> ## Compile and install.
> make -j "$PROC_NR" all
>
>
> And then it always fails with this error,
>
> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
> file or directory
>
> Could you help me to identify where the issue is?
>
> Cheers.
>

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

* Re: PlayStation 2 newlib port
  2023-06-19 20:41 ` Jeff Johnston
@ 2023-06-20  7:05   ` Francisco Javier Trujillo Mata
  2023-09-19 16:38     ` Francisco Javier Trujillo Mata
  0 siblings, 1 reply; 5+ messages in thread
From: Francisco Javier Trujillo Mata @ 2023-06-20  7:05 UTC (permalink / raw)
  To: Jeff Johnston; +Cc: newlib


[-- Attachment #1.1: Type: text/plain, Size: 5027 bytes --]

Hello Jeff,

First of all thanks for replying and paying attention to my message.

To install the proper PS2 Environment to be able to compile and generate
PS2 binaries, you require to follow the steps given here:
https://github.com/ps2dev/ps2dev

The PS2 is a complex machine, (it has 3 main CPUs DVP, IOP, and EE, which
means 3 toolchains...) so the whole PS2 development environment is not an
easy thing, there are plenty of tools and repositories involved, and as
part of this set of tools, and we also have Newlib, as you can see in the
next link (which is using a fork with our specific changes).
https://github.com/ps2dev/ps2toolchain-ee/blob/main/scripts/003-newlib.sh

However, if we just want to check if Newlib compiles for this PS2 port we
are creating, we just need to pay attention to the EE CPU, which is the
next repo:
https://github.com/ps2dev/ps2toolchain-ee
There under the "scripts" folder, you can see how Newlib is the 3rd step,
so if we want to check if Newlib is compiling, you just need to have proper
binutils and GCC installed previously (first and second steps).

Additionally, to make easier the usage of the whole PS2 toolchain, we are
offering some precompiled toolchains:
https://github.com/ps2dev/ps2dev/releases/tag/latest
And also the possibility of using dockers:
https://hub.docker.com/layers/ps2dev/ps2dev/latest/images/sha256-e6000652581b4d43d135f1862ecccabe4b11dd2afa3edb667b48736d815b59c1?context=explore

For executing the generated binaries, you will require either a PS2 that
allows you to execute homebrews or a PS2 emulator.

Regarding the changes I have made, all the files have been created from
scratch for me, anyway, I'm part of the PS2Dev community, so I will add the
PS2DEV license to these files.


Finally, regarding my original request, I was suffering issues when
compiling Newlib after adding the specific PS2 changes, I have found a
workaround to make it work, that probably will tell you more about the
actual issue.
When adding a new "sys" to the Newlib, in our case "newlib/libc/sys/ps2",
if you just add the crt0 file (it doesn't matter if it is .S, .s or .c),
which means that you "Makefile.inc" is going to be empty, you will suffer
the compilations issues that I previously mentioned.
fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
file or directory

However, if you add an extra file in the sys/ps2 directory, like a dummy.c
empty, and obviously, add the reference of this file into the
"Makefile.inc", then the library compiles properly generating the expected
".a" and ".o" files.

I suppose that the same issue that I'm speaking about most probably is also
being suffered with the tic80 system.
https://github.com/bminor/newlib/tree/master/newlib/libc/sys/tic80

Finally, I'm going to attach the compilation log.


Regards,
Francisco.

El lun, 19 jun 2023 a las 22:42, Jeff Johnston (<jjohnstn@redhat.com>)
escribió:

> Hi Francisco,
>
> If you would like help, I would suggest you tell others where they can get
> a proper toolset to build with or at least
> attach your build log which may provide more info.  I certainly don't have
> a Playstation 2 toolset hanging around.
>
> In addition, looking at your patches, you are missing copyright/licensing
> info for the new files you are adding
> (as opposed to existing files you are modifying).  If you are taking code
> from another location, you cannot change
> their license/copyright.  If you wrote these from scratch you should
> indicate this but you still need to add the licensing/copyright
> info.
>
> Regards,
>
> -- Jeff J.
>
> On Tue, Jun 13, 2023 at 2:31 PM Francisco Javier Trujillo Mata <
> fjtrujy@gmail.com> wrote:
>
>> Hi there!
>> I would like to mainstream the PS2 newlib port. So far the PS2 has had
>> newlib ports for years, however, it was never intended to be merged into
>> the mainstream.
>>
>> I'm now trying to port to the latest release 4.3.0, however, I'm suffering
>> some errors during the compilation process.
>>
>> I have attached the changes that I have done so far.
>> Then I just rerun the command `autoreconf` using the proper autoconf and
>> automake versions
>>
>> I execute `configure` with:
>>
>> PROC_NR=$(getconf _NPROCESSORS_ONLN)
>>
>> TARGET="mips64r5900el-ps2-elf"
>> TARGET_ALIAS="ee"
>>
>> ## Create and enter the toolchain/build directory
>> rm -rf "build-$TARGET"
>> mkdir "build-$TARGET"
>> cd "build-$TARGET"
>>
>> ## Configure the build.
>> CFLAGS_FOR_TARGET="-O2" ../configure \
>> --prefix="$PS2DEV/$TARGET_ALIAS" \
>> --target="$TARGET" \
>> --enable-newlib-retargetable-locking \
>> $TARG_XTRA_OPTS
>>
>> ## Compile and install.
>> make -j "$PROC_NR" all
>>
>>
>> And then it always fails with this error,
>>
>> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
>> file or directory
>>
>> Could you help me to identify where the issue is?
>>
>> Cheers.
>>
>

[-- Attachment #2: newlib-PS2.log --]
[-- Type: application/octet-stream, Size: 58964 bytes --]

checking build system type... x86_64-apple-darwin22.5.0
checking host system type... x86_64-apple-darwin22.5.0
checking target system type... mips64r5900el-ps2-elf
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/local/opt/gnu-sed/libexec/gnubin/sed
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... no
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for isl 0.16, 0.15, or deprecated 0.14... yes
checking for isl 0.16 or 0.15... yes
*** This configuration is not supported in the following subdirectories:
     target-libgloss
    (Any other directories should still work fine.)
rm: conftest.dSYM: is a directory
checking for default BUILD_CONFIG...
checking for --enable-vtable-verify... no
checking for bison... bison -y
checking for bison... bison
checking for gm4... gm4
checking for flex... flex
checking for flex... flex
checking for makeinfo... makeinfo
checking for expect... expect
checking for runtest... no
checking for ar... ar
checking for as... as
checking for dlltool... no
checking for ld... (cached) /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking for lipo... lipo
checking for nm... nm
checking for ranlib... ranlib
checking for strip... strip
checking for windres... no
checking for windmc... no
checking for objcopy... no
checking for objdump... objdump
checking for readelf... no
checking for -plugin option... rm: conftest.dSYM: is a directory
no
checking for mips64r5900el-ps2-elf-cc... no
checking for mips64r5900el-ps2-elf-gcc... mips64r5900el-ps2-elf-gcc
checking for mips64r5900el-ps2-elf-c++... mips64r5900el-ps2-elf-c++
checking for mips64r5900el-ps2-elf-gcc... mips64r5900el-ps2-elf-gcc
checking for mips64r5900el-ps2-elf-gcj... no
checking for mips64r5900el-ps2-elf-gfortran... no
checking for mips64r5900el-ps2-elf-gccgo... no
checking for mips64r5900el-ps2-elf-ar... mips64r5900el-ps2-elf-ar
checking for mips64r5900el-ps2-elf-as... mips64r5900el-ps2-elf-as
checking for mips64r5900el-ps2-elf-dlltool... no
checking for mips64r5900el-ps2-elf-ld... mips64r5900el-ps2-elf-ld
checking for mips64r5900el-ps2-elf-lipo... no
checking for mips64r5900el-ps2-elf-nm... mips64r5900el-ps2-elf-nm
checking for mips64r5900el-ps2-elf-objcopy... mips64r5900el-ps2-elf-objcopy
checking for mips64r5900el-ps2-elf-objdump... mips64r5900el-ps2-elf-objdump
checking for mips64r5900el-ps2-elf-ranlib... mips64r5900el-ps2-elf-ranlib
checking for mips64r5900el-ps2-elf-readelf... mips64r5900el-ps2-elf-readelf
checking for mips64r5900el-ps2-elf-strip... mips64r5900el-ps2-elf-strip
checking for mips64r5900el-ps2-elf-windres... no
checking for mips64r5900el-ps2-elf-windmc... no
checking where to find the target ar... pre-installed
checking where to find the target as... pre-installed
checking where to find the target cc... pre-installed
checking where to find the target c++... pre-installed
checking where to find the target c++ for libstdc++... pre-installed
checking where to find the target dlltool... pre-installed
checking where to find the target gcc... pre-installed
checking where to find the target gcj... pre-installed
checking where to find the target gfortran... pre-installed
checking where to find the target gccgo... pre-installed
checking where to find the target ld... pre-installed
checking where to find the target lipo... pre-installed
checking where to find the target nm... pre-installed
checking where to find the target objcopy... pre-installed
checking where to find the target objdump... pre-installed
checking where to find the target ranlib... pre-installed
checking where to find the target readelf... pre-installed
checking where to find the target strip... pre-installed
checking where to find the target windres... pre-installed
checking where to find the target windmc... pre-installed
checking whether to enable maintainer-specific portions of Makefiles... no
configure: creating ./config.status
config.status: creating Makefile
Checking multilib configuration for newlib...
mkdir mips64r5900el-ps2-elf
mkdir ./etc
mkdir mips64r5900el-ps2-elf/newlib
Configuring in ./etc
Configuring in mips64r5900el-ps2-elf/newlib
configure: creating cache ./config.cache
checking whether to enable maintainer-specific portions of Makefiles... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ../../etc/../install-sh -c -d
checking for gawk... awk
checking whether /Applications/Xcode.app/Contents/Developer/usr/bin/make sets $(MAKE)... yes
configure: creating cache ./config.cache
checking whether /Applications/Xcode.app/Contents/Developer/usr/bin/make supports nested variables... yes
checking build system type... x86_64-apple-darwin22.5.0
checking host system type... checking whether /Applications/Xcode.app/Contents/Developer/usr/bin/make supports nested variables... (cached) yes
mips64r5900el-ps2-elf
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
configure: updating cache ./config.cache
checking for mips64r5900el-ps2-elf-strip... mips64r5900el-ps2-elf-strip
checking for a thread-safe mkdir -p... ../../../newlib/../install-sh -c -d
checking for gawk... awk
checking whether /Applications/Xcode.app/Contents/Developer/usr/bin/make sets $(MAKE)... checking that generated files are newer than configure... yes
checking whether /Applications/Xcode.app/Contents/Developer/usr/bin/make supports nested variables... yes
checking for style of include used by /Applications/Xcode.app/Contents/Developer/usr/bin/make... GNU
checking for mips64r5900el-ps2-elf-gcc... mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... done
configure: creating ./config.status
config.status: creating Makefile

checking whether we are cross compiling... yes
checking for suffix of object files... make[2]: Nothing to be done for `all'.
o
checking whether we are using the GNU C compiler... yes
checking whether mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include    accepts -g... yes
checking for mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include    option to accept ISO C89... none needed
checking whether mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include    understands -c and -o together... yes
checking dependency style of mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include   ... gcc3
checking how to run the C preprocessor... mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include    -E
checking dependency style of mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include   ... gcc3
checking for mips64r5900el-ps2-elf-ar... mips64r5900el-ps2-elf-ar
checking the archiver (mips64r5900el-ps2-elf-ar) interface... ar
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether /Applications/Xcode.app/Contents/Developer/usr/bin/make supports nested variables... (cached) yes
checking for mips64r5900el-ps2-elf-ranlib... mips64r5900el-ps2-elf-ranlib
checking for mips64r5900el-ps2-elf-readelf... mips64r5900el-ps2-elf-readelf
checking for long double... yes
checking for build system executable suffix... no
checking for .preinit_array/.init_array/.fini_array support... yes
checking if mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include    accepts -fno-tree-loop-distribute-patterns with __attribute__ ((__optimize__))... yes
checking for long double... (cached) yes
checking whether long double equals double... yes
configure: updating cache ./config.cache
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating newlib.h
config.status: creating _newlib_version.h
config.status: executing default-1 commands
Adding multilib support to Makefile in ../../../newlib
multidirs=
with_multisubdir=
config.status: executing depfiles commands
/Applications/Xcode.app/Contents/Developer/usr/bin/make "CC_FOR_BUILD=gcc" "CFLAGS=-O2" "CCASFLAGS=-O2" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2" "INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2" "LIBCFLAGS_FOR_TARGET=-O2" "MAKE=/Applications/Xcode.app/Contents/Developer/usr/bin/make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/Users/fjtrujy/toolchains/ps2/ps2dev/ee" "infodir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/share/info" "libdir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/lib" "prefix=/Users/fjtrujy/toolchains/ps2/ps2dev/ee" "tooldir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/mips64r5900el-ps2-elf" "top_toollibdir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/mips64r5900el-ps2-elf/lib" "AR=mips64r5900el-ps2-elf-ar" "AS=mips64r5900el-ps2-elf-as" "CC=mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include   " "LD=mips64r5900el-ps2-elf-ld" "LIBCFLAGS=-O2" "NM=mips64r5900el-ps2-elf-nm" "PICFLAG=" "RANLIB=mips64r5900el-ps2-elf-ranlib" "DESTDIR=" all-am
  GEN      stmp-targ-include
../../../newlib/../install-sh -c -d doc
/Applications/Xcode.app/Contents/Developer/usr/bin/make "CC_FOR_BUILD=gcc" "CFLAGS=-O2" "CCASFLAGS=-O2" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2" "INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2" "LIBCFLAGS_FOR_TARGET=-O2" "MAKE=/Applications/Xcode.app/Contents/Developer/usr/bin/make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/Users/fjtrujy/toolchains/ps2/ps2dev/ee" "infodir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/share/info" "libdir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/lib" "prefix=/Users/fjtrujy/toolchains/ps2/ps2dev/ee" "tooldir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/mips64r5900el-ps2-elf" "top_toollibdir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/mips64r5900el-ps2-elf/lib" "AR=mips64r5900el-ps2-elf-ar" "AS=mips64r5900el-ps2-elf-as" "CC=mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include   " "LD=mips64r5900el-ps2-elf-ld" "LIBCFLAGS=-O2" "NM=mips64r5900el-ps2-elf-nm" "PICFLAG=" "RANLIB=mips64r5900el-ps2-elf-ranlib" "DESTDIR=" DO=all multi-do # /Applications/Xcode.app/Contents/Developer/usr/bin/make
gcc -g -g -O2 -o doc/makedoc.o -c ../../../newlib/doc/makedoc.c
  GEN      targ-include
  GEN      targ-include/_newlib_version.h
  GEN      targ-include/newlib.h
  GEN      targ-include/bits
  GEN      targ-include/machine
  GEN      targ-include/sys
if [ -z "" ]; then \
	  true; \
	else \
	  rootpre=`${PWDCMD-pwd}`/; export rootpre; \
	  srcrootpre=`cd ../../../newlib; ${PWDCMD-pwd}`/; export srcrootpre; \
	  lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
	  compiler="mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include   "; \
	  for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
	    dir=`echo $i | sed -e 's/;.*$//'`; \
	    if [ "${dir}" = "." ]; then \
	      true; \
	    else \
	      if [ -d ../${dir}/${lib} ]; then \
		flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
		if (cd ../${dir}/${lib}; /Applications/Xcode.app/Contents/Developer/usr/bin/make "CC_FOR_BUILD=gcc" "CFLAGS=-O2" "CCASFLAGS=-O2" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2" "INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2" "LIBCFLAGS_FOR_TARGET=-O2" "MAKE=/Applications/Xcode.app/Contents/Developer/usr/bin/make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000   " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/Users/fjtrujy/toolchains/ps2/ps2dev/ee" "infodir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/share/info" "libdir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/lib" "prefix=/Users/fjtrujy/toolchains/ps2/ps2dev/ee" "tooldir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/mips64r5900el-ps2-elf" "top_toollibdir=/Users/fjtrujy/toolchains/ps2/ps2dev/ee/mips64r5900el-ps2-elf/lib" "AR=mips64r5900el-ps2-elf-ar" "AS=mips64r5900el-ps2-elf-as" "CC=mips64r5900el-ps2-elf-gcc -B/Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/ -isystem /Users/fjtrujy/Projects/newlib/build-mips64r5900el-ps2-elf/mips64r5900el-ps2-elf/newlib/targ-include -isystem /Users/fjtrujy/Projects/newlib/newlib/libc/include   " "LD=mips64r5900el-ps2-elf-ld" "LIBCFLAGS=-O2" "NM=mips64r5900el-ps2-elf-nm" "PICFLAG=" "RANLIB=mips64r5900el-ps2-elf-ranlib" "DESTDIR=" \
				CFLAGS="-O2 ${flags}" \
				CCASFLAGS="-O2 ${flags}" \
				FCFLAGS=" ${flags}" \
				FFLAGS=" ${flags}" \
				ADAFLAGS=" ${flags}" \
				prefix="/Users/fjtrujy/toolchains/ps2/ps2dev/ee" \
				exec_prefix="/Users/fjtrujy/toolchains/ps2/ps2dev/ee" \
				GCJFLAGS=" ${flags}" \
				GOCFLAGS="-O2 -g ${flags}" \
				CXXFLAGS="-g -O2 ${flags}" \
				LIBCFLAGS="-O2 ${flags}" \
				LIBCXXFLAGS="-g -O2 -fno-implicit-templates ${flags}" \
				LDFLAGS=" ${flags}" \
				MULTIFLAGS="${flags}" \
				DESTDIR="" \
				INSTALL="/usr/bin/install -c" \
				INSTALL_DATA="/usr/bin/install -c -m 644" \
				INSTALL_PROGRAM="/usr/bin/install -c" \
				INSTALL_SCRIPT="/usr/bin/install -c" \
				all); then \
		  true; \
		else \
		  exit 1; \
		fi; \
	      else true; \
	      fi; \
	    fi; \
	  done; \
	fi
gcc -g -O2  -o doc/makedoc doc/makedoc.o
make[4]: `targ-include/newlib.h' is up to date.
  CC       libm/math/libm_a-k_standard.o
  CC       libm/math/libm_a-k_rem_pio2.o
  CC       libm/math/libm_a-k_sin.o
  CC       libm/math/libm_a-k_cos.o
  CC       libm/math/libm_a-k_tan.o
  CC       libm/math/libm_a-e_acos.o
  CC       libm/math/libm_a-e_acosh.o
  CC       libm/math/libm_a-e_asin.o
  CC       libm/math/libm_a-e_atan2.o
  CC       libm/math/libm_a-e_atanh.o
  CC       libm/math/libm_a-e_cosh.o
  CC       libm/math/libm_a-e_exp.o
  CC       libm/math/libm_a-e_fmod.o
  CC       libm/math/libm_a-e_tgamma.o
  CC       libm/math/libm_a-e_hypot.o
  CC       libm/math/libm_a-e_j0.o
  CC       libm/math/libm_a-e_j1.o
  CC       libm/math/libm_a-e_jn.o
  CC       libm/math/libm_a-er_lgamma.o
  CC       libm/math/libm_a-e_log.o
  CC       libm/math/libm_a-e_log10.o
  CC       libm/math/libm_a-e_pow.o
  CC       libm/math/libm_a-e_rem_pio2.o
  CC       libm/math/libm_a-e_remainder.o
  CC       libm/math/libm_a-e_scalb.o
  CC       libm/math/libm_a-e_sinh.o
  CC       libm/math/libm_a-e_sqrt.o
  CC       libm/math/libm_a-w_acos.o
  CC       libm/math/libm_a-w_acosh.o
  CC       libm/math/libm_a-w_asin.o
  CC       libm/math/libm_a-w_atan2.o
  CC       libm/math/libm_a-w_atanh.o
  CC       libm/math/libm_a-w_cosh.o
  CC       libm/math/libm_a-w_exp.o
  CC       libm/math/libm_a-w_fmod.o
  CC       libm/math/libm_a-w_gamma.o
  CC       libm/math/libm_a-wr_gamma.o
  CC       libm/math/libm_a-w_hypot.o
  CC       libm/math/libm_a-w_j0.o
  CC       libm/math/libm_a-w_j1.o
  CC       libm/math/libm_a-w_jn.o
  CC       libm/math/libm_a-w_lgamma.o
  CC       libm/math/libm_a-wr_lgamma.o
  CC       libm/math/libm_a-w_log.o
  CC       libm/math/libm_a-w_log10.o
  CC       libm/math/libm_a-w_pow.o
  CC       libm/math/libm_a-w_remainder.o
  CC       libm/math/libm_a-w_scalb.o
  CC       libm/math/libm_a-w_sinh.o
  CC       libm/math/libm_a-w_sqrt.o
  CC       libm/math/libm_a-w_sincos.o
  CC       libm/math/libm_a-w_drem.o
  CC       libm/math/libm_a-s_asinh.o
  CC       libm/math/libm_a-s_atan.o
  CC       libm/math/libm_a-s_ceil.o
  CC       libm/math/libm_a-s_cos.o
  CC       libm/math/libm_a-s_erf.o
  CC       libm/math/libm_a-s_fabs.o
  CC       libm/math/libm_a-s_floor.o
  CC       libm/math/libm_a-s_frexp.o
  CC       libm/math/libm_a-s_ldexp.o
  CC       libm/math/libm_a-s_signif.o
  CC       libm/math/libm_a-s_sin.o
  CC       libm/math/libm_a-s_tan.o
  CC       libm/math/libm_a-s_tanh.o
  CC       libm/math/libm_a-w_exp2.o
  CC       libm/math/libm_a-w_tgamma.o
  CC       libm/math/libm_a-kf_rem_pio2.o
  CC       libm/math/libm_a-kf_cos.o
  CC       libm/math/libm_a-kf_sin.o
  CC       libm/math/libm_a-kf_tan.o
  CC       libm/math/libm_a-ef_acos.o
  CC       libm/math/libm_a-ef_acosh.o
  CC       libm/math/libm_a-ef_asin.o
  CC       libm/math/libm_a-ef_atan2.o
  CC       libm/math/libm_a-ef_atanh.o
  CC       libm/math/libm_a-ef_cosh.o
  CC       libm/math/libm_a-ef_exp.o
  CC       libm/math/libm_a-ef_fmod.o
  CC       libm/math/libm_a-ef_tgamma.o
  CC       libm/math/libm_a-ef_hypot.o
  CC       libm/math/libm_a-ef_j0.o
  CC       libm/math/libm_a-ef_j1.o
  CC       libm/math/libm_a-ef_jn.o
  CC       libm/math/libm_a-erf_lgamma.o
  CC       libm/math/libm_a-ef_log.o
  CC       libm/math/libm_a-ef_log10.o
  CC       libm/math/libm_a-ef_pow.o
  CC       libm/math/libm_a-ef_rem_pio2.o
  CC       libm/math/libm_a-ef_remainder.o
  CC       libm/math/libm_a-ef_scalb.o
  CC       libm/math/libm_a-ef_sinh.o
  CC       libm/math/libm_a-ef_sqrt.o
  CC       libm/math/libm_a-wf_acos.o
  CC       libm/math/libm_a-wf_acosh.o
  CC       libm/math/libm_a-wf_asin.o
  CC       libm/math/libm_a-wf_atan2.o
  CC       libm/math/libm_a-wf_atanh.o
  CC       libm/math/libm_a-wf_cosh.o
  CC       libm/math/libm_a-wf_exp.o
  CC       libm/math/libm_a-wf_fmod.o
  CC       libm/math/libm_a-wf_gamma.o
  CC       libm/math/libm_a-wrf_gamma.o
  CC       libm/math/libm_a-wf_hypot.o
  CC       libm/math/libm_a-wf_j0.o
  CC       libm/math/libm_a-wf_j1.o
  CC       libm/math/libm_a-wf_jn.o
  CC       libm/math/libm_a-wf_lgamma.o
  CC       libm/math/libm_a-wrf_lgamma.o
  CC       libm/math/libm_a-wf_log.o
  CC       libm/math/libm_a-wf_log10.o
  CC       libm/math/libm_a-wf_pow.o
  CC       libm/math/libm_a-wf_remainder.o
  CC       libm/math/libm_a-wf_scalb.o
  CC       libm/math/libm_a-wf_sinh.o
  CC       libm/math/libm_a-wf_sqrt.o
  CC       libm/math/libm_a-wf_sincos.o
  CC       libm/math/libm_a-wf_drem.o
  CC       libm/math/libm_a-sf_asinh.o
  CC       libm/math/libm_a-sf_atan.o
  CC       libm/math/libm_a-sf_ceil.o
  CC       libm/math/libm_a-sf_cos.o
  CC       libm/math/libm_a-sf_erf.o
  CC       libm/math/libm_a-sf_fabs.o
  CC       libm/math/libm_a-sf_floor.o
  CC       libm/math/libm_a-sf_frexp.o
  CC       libm/math/libm_a-sf_ldexp.o
  CC       libm/math/libm_a-sf_signif.o
  CC       libm/math/libm_a-sf_sin.o
  CC       libm/math/libm_a-sf_tan.o
  CC       libm/math/libm_a-sf_tanh.o
  CC       libm/math/libm_a-wf_exp2.o
  CC       libm/math/libm_a-wf_tgamma.o
  CC       libm/math/libm_a-wf_log2.o
  CC       libm/math/libm_a-el_hypot.o
  CC       libm/common/libm_a-s_finite.o
  CC       libm/common/libm_a-s_copysign.o
  CC       libm/common/libm_a-s_modf.o
  CC       libm/common/libm_a-s_scalbn.o
  CC       libm/common/libm_a-s_cbrt.o
  CC       libm/common/libm_a-s_exp10.o
  CC       libm/common/libm_a-s_expm1.o
  CC       libm/common/libm_a-s_ilogb.o
  CC       libm/common/libm_a-s_isinf.o
  CC       libm/common/libm_a-s_infinity.o
  CC       libm/common/libm_a-s_isinfd.o
  CC       libm/common/libm_a-s_isnan.o
  CC       libm/common/libm_a-s_isnand.o
  CC       libm/common/libm_a-s_log1p.o
  CC       libm/common/libm_a-s_nan.o
  CC       libm/common/libm_a-s_nextafter.o
  CC       libm/common/libm_a-s_pow10.o
  CC       libm/common/libm_a-s_rint.o
  CC       libm/common/libm_a-s_logb.o
  CC       libm/common/libm_a-s_log2.o
  CC       libm/common/libm_a-s_fdim.o
  CC       libm/common/libm_a-s_fma.o
  CC       libm/common/libm_a-s_fmax.o
  CC       libm/common/libm_a-s_fmin.o
  CC       libm/common/libm_a-s_fpclassify.o
  CC       libm/common/libm_a-s_lrint.o
  CC       libm/common/libm_a-s_llrint.o
  CC       libm/common/libm_a-s_lround.o
  CC       libm/common/libm_a-s_llround.o
  CC       libm/common/libm_a-s_nearbyint.o
  CC       libm/common/libm_a-s_remquo.o
  CC       libm/common/libm_a-s_round.o
  CC       libm/common/libm_a-s_scalbln.o
  CC       libm/common/libm_a-s_signbit.o
  CC       libm/common/libm_a-s_trunc.o
  CC       libm/common/libm_a-exp.o
  CC       libm/common/libm_a-exp2.o
  CC       libm/common/libm_a-exp_data.o
  CC       libm/common/libm_a-math_err.o
  CC       libm/common/libm_a-log.o
  CC       libm/common/libm_a-log_data.o
  CC       libm/common/libm_a-log2.o
  CC       libm/common/libm_a-log2_data.o
  CC       libm/common/libm_a-pow.o
  CC       libm/common/libm_a-pow_log_data.o
  CC       libm/common/libm_a-sf_finite.o
  CC       libm/common/libm_a-sf_copysign.o
  CC       libm/common/libm_a-sf_modf.o
  CC       libm/common/libm_a-sf_scalbn.o
  CC       libm/common/libm_a-sf_cbrt.o
  CC       libm/common/libm_a-sf_exp10.o
  CC       libm/common/libm_a-sf_expm1.o
  CC       libm/common/libm_a-sf_ilogb.o
  CC       libm/common/libm_a-sf_infinity.o
  CC       libm/common/libm_a-sf_isinf.o
  CC       libm/common/libm_a-sf_isinff.o
  CC       libm/common/libm_a-sf_isnan.o
  CC       libm/common/libm_a-sf_isnanf.o
  CC       libm/common/libm_a-sf_log1p.o
  CC       libm/common/libm_a-sf_nan.o
  CC       libm/common/libm_a-sf_nextafter.o
  CC       libm/common/libm_a-sf_pow10.o
  CC       libm/common/libm_a-sf_rint.o
  CC       libm/common/libm_a-sf_logb.o
  CC       libm/common/libm_a-sf_fdim.o
  CC       libm/common/libm_a-sf_fma.o
  CC       libm/common/libm_a-sf_fmax.o
  CC       libm/common/libm_a-sf_fmin.o
  CC       libm/common/libm_a-sf_fpclassify.o
  CC       libm/common/libm_a-sf_lrint.o
  CC       libm/common/libm_a-sf_llrint.o
  CC       libm/common/libm_a-sf_lround.o
  CC       libm/common/libm_a-sf_llround.o
  CC       libm/common/libm_a-sf_nearbyint.o
  CC       libm/common/libm_a-sf_remquo.o
  CC       libm/common/libm_a-sf_round.o
  CC       libm/common/libm_a-sf_scalbln.o
  CC       libm/common/libm_a-sf_trunc.o
  CC       libm/common/libm_a-sf_exp.o
  CC       libm/common/libm_a-sf_exp2.o
  CC       libm/common/libm_a-sf_exp2_data.o
  CC       libm/common/libm_a-sf_log.o
  CC       libm/common/libm_a-sf_log_data.o
  CC       libm/common/libm_a-sf_log2.o
  CC       libm/common/libm_a-sf_log2_data.o
  CC       libm/common/libm_a-sf_pow_log2_data.o
  CC       libm/common/libm_a-sf_pow.o
  CC       libm/common/libm_a-sinf.o
  CC       libm/common/libm_a-cosf.o
  CC       libm/common/libm_a-sincosf.o
  CC       libm/common/libm_a-sincosf_data.o
  CC       libm/common/libm_a-math_errf.o
  CC       libm/common/libm_a-atanl.o
  CC       libm/common/libm_a-cosl.o
  CC       libm/common/libm_a-sinl.o
  CC       libm/common/libm_a-tanl.o
  CC       libm/common/libm_a-tanhl.o
  CC       libm/common/libm_a-frexpl.o
  CC       libm/common/libm_a-modfl.o
  CC       libm/common/libm_a-ceill.o
  CC       libm/common/libm_a-fabsl.o
  CC       libm/common/libm_a-floorl.o
  CC       libm/common/libm_a-log1pl.o
  CC       libm/common/libm_a-expm1l.o
  CC       libm/common/libm_a-acosl.o
  CC       libm/common/libm_a-asinl.o
  CC       libm/common/libm_a-atan2l.o
  CC       libm/common/libm_a-coshl.o
  CC       libm/common/libm_a-sinhl.o
  CC       libm/common/libm_a-expl.o
  CC       libm/common/libm_a-ldexpl.o
  CC       libm/common/libm_a-logl.o
  CC       libm/common/libm_a-log10l.o
  CC       libm/common/libm_a-powl.o
  CC       libm/common/libm_a-sqrtl.o
  CC       libm/common/libm_a-fmodl.o
  CC       libm/common/libm_a-hypotl.o
  CC       libm/common/libm_a-nanl.o
  CC       libm/common/libm_a-copysignl.o
  CC       libm/common/libm_a-ilogbl.o
  CC       libm/common/libm_a-cbrtl.o
  CC       libm/common/libm_a-asinhl.o
  CC       libm/common/libm_a-nextafterl.o
  CC       libm/common/libm_a-rintl.o
  CC       libm/common/libm_a-scalbnl.o
  CC       libm/common/libm_a-exp2l.o
  CC       libm/common/libm_a-scalblnl.o
  CC       libm/common/libm_a-tgammal.o
  CC       libm/common/libm_a-nearbyintl.o
  CC       libm/common/libm_a-lrintl.o
  CC       libm/common/libm_a-llrintl.o
  CC       libm/common/libm_a-roundl.o
  CC       libm/common/libm_a-lroundl.o
  CC       libm/common/libm_a-llroundl.o
  CC       libm/common/libm_a-truncl.o
  CC       libm/common/libm_a-remquol.o
  CC       libm/common/libm_a-fdiml.o
  CC       libm/common/libm_a-fmaxl.o
  CC       libm/common/libm_a-fminl.o
  CC       libm/common/libm_a-fmal.o
  CC       libm/common/libm_a-acoshl.o
  CC       libm/common/libm_a-atanhl.o
  CC       libm/common/libm_a-remainderl.o
  CC       libm/common/libm_a-lgammal.o
  CC       libm/common/libm_a-erfl.o
  CC       libm/common/libm_a-erfcl.o
  CC       libm/common/libm_a-logbl.o
  CC       libm/common/libm_a-nexttowardf.o
  CC       libm/common/libm_a-nexttoward.o
  CC       libm/common/libm_a-nexttowardl.o
  CC       libm/common/libm_a-log2l.o
  CC       libm/common/libm_a-sl_finite.o
  CC       libm/complex/libm_a-cabs.o
  CC       libm/complex/libm_a-cacos.o
  CC       libm/complex/libm_a-cacosh.o
  CC       libm/complex/libm_a-carg.o
  CC       libm/complex/libm_a-casin.o
  CC       libm/complex/libm_a-casinh.o
  CC       libm/complex/libm_a-catan.o
  CC       libm/complex/libm_a-catanh.o
  CC       libm/complex/libm_a-ccos.o
  CC       libm/complex/libm_a-ccosh.o
  CC       libm/complex/libm_a-cephes_subr.o
  CC       libm/complex/libm_a-cexp.o
  CC       libm/complex/libm_a-cimag.o
  CC       libm/complex/libm_a-clog.o
  CC       libm/complex/libm_a-clog10.o
  CC       libm/complex/libm_a-conj.o
  CC       libm/complex/libm_a-cpow.o
  CC       libm/complex/libm_a-cproj.o
  CC       libm/complex/libm_a-creal.o
  CC       libm/complex/libm_a-csin.o
  CC       libm/complex/libm_a-csinh.o
  CC       libm/complex/libm_a-csqrt.o
  CC       libm/complex/libm_a-ctan.o
  CC       libm/complex/libm_a-ctanh.o
  CC       libm/complex/libm_a-cabsf.o
  CC       libm/complex/libm_a-casinf.o
  CC       libm/complex/libm_a-ccosf.o
  CC       libm/complex/libm_a-cimagf.o
  CC       libm/complex/libm_a-cprojf.o
  CC       libm/complex/libm_a-csqrtf.o
  CC       libm/complex/libm_a-cacosf.o
  CC       libm/complex/libm_a-casinhf.o
  CC       libm/complex/libm_a-ccoshf.o
  CC       libm/complex/libm_a-clogf.o
  CC       libm/complex/libm_a-clog10f.o
  CC       libm/complex/libm_a-crealf.o
  CC       libm/complex/libm_a-ctanf.o
  CC       libm/complex/libm_a-cacoshf.o
  CC       libm/complex/libm_a-catanf.o
  CC       libm/complex/libm_a-cephes_subrf.o
  CC       libm/complex/libm_a-conjf.o
  CC       libm/complex/libm_a-csinf.o
  CC       libm/complex/libm_a-ctanhf.o
  CC       libm/complex/libm_a-cargf.o
  CC       libm/complex/libm_a-catanhf.o
  CC       libm/complex/libm_a-cexpf.o
  CC       libm/complex/libm_a-cpowf.o
  CC       libm/complex/libm_a-csinhf.o
  CC       libm/complex/libm_a-cabsl.o
  CC       libm/complex/libm_a-creall.o
  CC       libm/complex/libm_a-cimagl.o
  CC       libm/complex/libm_a-ccoshl.o
  CC       libm/complex/libm_a-cacoshl.o
  CC       libm/complex/libm_a-clogl.o
  CC       libm/complex/libm_a-csqrtl.o
  CC       libm/complex/libm_a-cargl.o
  CC       libm/complex/libm_a-cprojl.o
  CC       libm/complex/libm_a-cexpl.o
  CC       libm/complex/libm_a-cephes_subrl.o
  CC       libm/complex/libm_a-cacosl.o
  CC       libm/complex/libm_a-ccosl.o
  CC       libm/complex/libm_a-casinl.o
  CC       libm/complex/libm_a-catanhl.o
  CC       libm/complex/libm_a-cpowl.o
  CC       libm/complex/libm_a-conjl.o
  CC       libm/complex/libm_a-ctanhl.o
  CC       libm/complex/libm_a-ctanl.o
  CC       libm/complex/libm_a-casinhl.o
  CC       libm/complex/libm_a-csinhl.o
  CC       libm/complex/libm_a-csinl.o
  CC       libm/complex/libm_a-catanl.o
  CC       libm/fenv/libm_a-feclearexcept.o
  CC       libm/fenv/libm_a-fe_dfl_env.o
  CC       libm/fenv/libm_a-fegetenv.o
  CC       libm/fenv/libm_a-fegetexceptflag.o
  CC       libm/fenv/libm_a-fegetround.o
  CC       libm/fenv/libm_a-feholdexcept.o
  CC       libm/fenv/libm_a-feraiseexcept.o
  CC       libm/fenv/libm_a-fesetenv.o
  CC       libm/fenv/libm_a-fesetexceptflag.o
  CC       libm/fenv/libm_a-fesetround.o
  CC       libm/fenv/libm_a-fetestexcept.o
  CC       libm/fenv/libm_a-feupdateenv.o
  CC       libc/argz/libc_a-argz_add.o
  CC       libc/argz/libc_a-argz_add_sep.o
  CC       libc/argz/libc_a-argz_append.o
  CC       libc/argz/libc_a-argz_count.o
  CC       libc/argz/libc_a-argz_create.o
  CC       libc/argz/libc_a-argz_create_sep.o
  CC       libc/argz/libc_a-argz_delete.o
  CC       libc/argz/libc_a-argz_extract.o
  CC       libc/argz/libc_a-argz_insert.o
  CC       libc/argz/libc_a-argz_next.o
  CC       libc/argz/libc_a-argz_replace.o
  CC       libc/argz/libc_a-argz_stringify.o
  CC       libc/argz/libc_a-buf_findstr.o
  CC       libc/argz/libc_a-envz_entry.o
  CC       libc/argz/libc_a-envz_get.o
  CC       libc/argz/libc_a-envz_add.o
  CC       libc/argz/libc_a-envz_remove.o
  CC       libc/argz/libc_a-envz_merge.o
  CC       libc/argz/libc_a-envz_strip.o
  CC       libc/stdlib/libc_a-__adjust.o
  CC       libc/stdlib/libc_a-__atexit.o
  CC       libc/stdlib/libc_a-__call_atexit.o
  CC       libc/stdlib/libc_a-__exp10.o
  CC       libc/stdlib/libc_a-__ten_mu.o
  CC       libc/stdlib/libc_a-_Exit.o
  CC       libc/stdlib/libc_a-abort.o
  CC       libc/stdlib/libc_a-abs.o
  CC       libc/stdlib/libc_a-aligned_alloc.o
  CC       libc/stdlib/libc_a-assert.o
  CC       libc/stdlib/libc_a-atexit.o
  CC       libc/stdlib/libc_a-atof.o
  CC       libc/stdlib/libc_a-atoff.o
  CC       libc/stdlib/libc_a-atoi.o
  CC       libc/stdlib/libc_a-atol.o
  CC       libc/stdlib/libc_a-calloc.o
  CC       libc/stdlib/libc_a-callocr.o
  CC       libc/stdlib/libc_a-cfreer.o
  CC       libc/stdlib/libc_a-div.o
  CC       libc/stdlib/libc_a-dtoa.o
  CC       libc/stdlib/libc_a-dtoastub.o
  CC       libc/stdlib/libc_a-environ.o
  CC       libc/stdlib/libc_a-envlock.o
  CC       libc/stdlib/libc_a-eprintf.o
  CC       libc/stdlib/libc_a-exit.o
  CC       libc/stdlib/libc_a-freer.o
  CC       libc/stdlib/libc_a-gdtoa-gethex.o
  CC       libc/stdlib/libc_a-gdtoa-hexnan.o
  CC       libc/stdlib/libc_a-getenv.o
  CC       libc/stdlib/libc_a-getenv_r.o
  CC       libc/stdlib/libc_a-imaxabs.o
  CC       libc/stdlib/libc_a-imaxdiv.o
  CC       libc/stdlib/libc_a-itoa.o
  CC       libc/stdlib/libc_a-labs.o
  CC       libc/stdlib/libc_a-ldiv.o
  CC       libc/stdlib/libc_a-ldtoa.o
  CC       libc/stdlib/libc_a-gdtoa-ldtoa.o
  CC       libc/stdlib/libc_a-gdtoa-gdtoa.o
  CC       libc/stdlib/libc_a-gdtoa-dmisc.o
  CC       libc/stdlib/libc_a-gdtoa-gmisc.o
  CC       libc/stdlib/libc_a-mallinfor.o
  CC       libc/stdlib/libc_a-malloc.o
  CC       libc/stdlib/libc_a-mallocr.o
  CC       libc/stdlib/libc_a-mallstatsr.o
  CC       libc/stdlib/libc_a-mblen.o
  CC       libc/stdlib/libc_a-mblen_r.o
  CC       libc/stdlib/libc_a-mbstowcs.o
  CC       libc/stdlib/libc_a-mbstowcs_r.o
  CC       libc/stdlib/libc_a-mbtowc.o
  CC       libc/stdlib/libc_a-mbtowc_r.o
  CC       libc/stdlib/libc_a-mlock.o
  CC       libc/stdlib/libc_a-mprec.o
  CC       libc/stdlib/libc_a-msizer.o
  CC       libc/stdlib/libc_a-mstats.o
  CC       libc/stdlib/libc_a-on_exit_args.o
  CC       libc/stdlib/libc_a-quick_exit.o
  CC       libc/stdlib/libc_a-rand.o
  CC       libc/stdlib/libc_a-rand_r.o
  CC       libc/stdlib/libc_a-random.o
  CC       libc/stdlib/libc_a-realloc.o
  CC       libc/stdlib/libc_a-reallocarray.o
  CC       libc/stdlib/libc_a-reallocf.o
  CC       libc/stdlib/libc_a-reallocr.o
  CC       libc/stdlib/libc_a-sb_charsets.o
  CC       libc/stdlib/libc_a-strtod.o
  CC       libc/stdlib/libc_a-strtoimax.o
  CC       libc/stdlib/libc_a-strtol.o
  CC       libc/stdlib/libc_a-strtoul.o
  CC       libc/stdlib/libc_a-strtoumax.o
  CC       libc/stdlib/libc_a-utoa.o
  CC       libc/stdlib/libc_a-wcstod.o
  CC       libc/stdlib/libc_a-wcstoimax.o
  CC       libc/stdlib/libc_a-wcstol.o
  CC       libc/stdlib/libc_a-wcstoul.o
  CC       libc/stdlib/libc_a-wcstoumax.o
  CC       libc/stdlib/libc_a-wcstombs.o
  CC       libc/stdlib/libc_a-wcstombs_r.o
  CC       libc/stdlib/libc_a-wctomb.o
  CC       libc/stdlib/libc_a-wctomb_r.o
  CC       libc/stdlib/libc_a-strtodg.o
  CC       libc/stdlib/libc_a-strtold.o
  CC       libc/stdlib/libc_a-strtorx.o
  CC       libc/stdlib/libc_a-wcstold.o
  CC       libc/stdlib/libc_a-arc4random.o
  CC       libc/stdlib/libc_a-arc4random_uniform.o
  CC       libc/stdlib/libc_a-cxa_atexit.o
  CC       libc/stdlib/libc_a-cxa_finalize.o
  CC       libc/stdlib/libc_a-drand48.o
  CC       libc/stdlib/libc_a-ecvtbuf.o
  CC       libc/stdlib/libc_a-efgcvt.o
  CC       libc/stdlib/libc_a-erand48.o
  CC       libc/stdlib/libc_a-jrand48.o
  CC       libc/stdlib/libc_a-lcong48.o
  CC       libc/stdlib/libc_a-lrand48.o
  CC       libc/stdlib/libc_a-mrand48.o
  CC       libc/stdlib/libc_a-msize.o
  CC       libc/stdlib/libc_a-mtrim.o
  CC       libc/stdlib/libc_a-nrand48.o
  CC       libc/stdlib/libc_a-rand48.o
  CC       libc/stdlib/libc_a-seed48.o
  CC       libc/stdlib/libc_a-srand48.o
  CC       libc/stdlib/libc_a-strtoll.o
  CC       libc/stdlib/libc_a-strtoll_r.o
  CC       libc/stdlib/libc_a-strtoull.o
  CC       libc/stdlib/libc_a-strtoull_r.o
  CC       libc/stdlib/libc_a-wcstoll.o
  CC       libc/stdlib/libc_a-wcstoll_r.o
  CC       libc/stdlib/libc_a-wcstoull.o
  CC       libc/stdlib/libc_a-wcstoull_r.o
  CC       libc/stdlib/libc_a-atoll.o
  CC       libc/stdlib/libc_a-llabs.o
  CC       libc/stdlib/libc_a-lldiv.o
  CC       libc/stdlib/libc_a-a64l.o
  CC       libc/stdlib/libc_a-btowc.o
  CC       libc/stdlib/libc_a-getopt.o
  CC       libc/stdlib/libc_a-getsubopt.o
  CC       libc/stdlib/libc_a-l64a.o
  CC       libc/stdlib/libc_a-malign.o
  CC       libc/stdlib/libc_a-malignr.o
  CC       libc/stdlib/libc_a-malloptr.o
  CC       libc/stdlib/libc_a-mbrlen.o
  CC       libc/stdlib/libc_a-mbrtowc.o
  CC       libc/stdlib/libc_a-mbsinit.o
  CC       libc/stdlib/libc_a-mbsnrtowcs.o
  CC       libc/stdlib/libc_a-mbsrtowcs.o
  CC       libc/stdlib/libc_a-on_exit.o
  CC       libc/stdlib/libc_a-pvallocr.o
  CC       libc/stdlib/libc_a-valloc.o
  CC       libc/stdlib/libc_a-vallocr.o
  CC       libc/stdlib/libc_a-wcrtomb.o
  CC       libc/stdlib/libc_a-wcsnrtombs.o
  CC       libc/stdlib/libc_a-wcsrtombs.o
  CC       libc/stdlib/libc_a-wctob.o
  CC       libc/stdlib/libc_a-putenv.o
  CC       libc/stdlib/libc_a-putenv_r.o
  CC       libc/stdlib/libc_a-setenv.o
  CC       libc/stdlib/libc_a-setenv_r.o
  CC       libc/stdlib/libc_a-rpmatch.o
  CC       libc/stdlib/libc_a-system.o
  CC       libc/ctype/libc_a-ctype_.o
  CC       libc/ctype/libc_a-isalnum.o
  CC       libc/ctype/libc_a-isalpha.o
  CC       libc/ctype/libc_a-iscntrl.o
  CC       libc/ctype/libc_a-isdigit.o
  CC       libc/ctype/libc_a-islower.o
  CC       libc/ctype/libc_a-isupper.o
  CC       libc/ctype/libc_a-isprint.o
  CC       libc/ctype/libc_a-ispunct.o
  CC       libc/ctype/libc_a-isspace.o
  CC       libc/ctype/libc_a-isxdigit.o
  CC       libc/ctype/libc_a-tolower.o
  CC       libc/ctype/libc_a-toupper.o
  CC       libc/ctype/libc_a-categories.o
  CC       libc/ctype/libc_a-isalnum_l.o
  CC       libc/ctype/libc_a-isalpha_l.o
  CC       libc/ctype/libc_a-isascii.o
  CC       libc/ctype/libc_a-isascii_l.o
  CC       libc/ctype/libc_a-isblank_l.o
  CC       libc/ctype/libc_a-isblank.o
  CC       libc/ctype/libc_a-iscntrl_l.o
  CC       libc/ctype/libc_a-isdigit_l.o
  CC       libc/ctype/libc_a-islower_l.o
  CC       libc/ctype/libc_a-isupper_l.o
  CC       libc/ctype/libc_a-isprint_l.o
  CC       libc/ctype/libc_a-ispunct_l.o
  CC       libc/ctype/libc_a-isspace_l.o
  CC       libc/ctype/libc_a-iswalnum.o
  CC       libc/ctype/libc_a-iswalnum_l.o
  CC       libc/ctype/libc_a-iswalpha.o
  CC       libc/ctype/libc_a-iswalpha_l.o
  CC       libc/ctype/libc_a-iswblank.o
  CC       libc/ctype/libc_a-iswblank_l.o
  CC       libc/ctype/libc_a-iswcntrl.o
  CC       libc/ctype/libc_a-iswcntrl_l.o
  CC       libc/ctype/libc_a-iswctype.o
  CC       libc/ctype/libc_a-iswctype_l.o
  CC       libc/ctype/libc_a-iswdigit.o
  CC       libc/ctype/libc_a-iswdigit_l.o
  CC       libc/ctype/libc_a-iswgraph.o
  CC       libc/ctype/libc_a-iswgraph_l.o
  CC       libc/ctype/libc_a-iswlower.o
  CC       libc/ctype/libc_a-iswlower_l.o
  CC       libc/ctype/libc_a-iswprint.o
  CC       libc/ctype/libc_a-iswprint_l.o
  CC       libc/ctype/libc_a-iswpunct.o
  CC       libc/ctype/libc_a-iswpunct_l.o
  CC       libc/ctype/libc_a-iswspace.o
  CC       libc/ctype/libc_a-iswspace_l.o
  CC       libc/ctype/libc_a-iswupper.o
  CC       libc/ctype/libc_a-iswupper_l.o
  CC       libc/ctype/libc_a-iswxdigit.o
  CC       libc/ctype/libc_a-iswxdigit_l.o
  CC       libc/ctype/libc_a-isxdigit_l.o
  CC       libc/ctype/libc_a-jp2uc.o
  CC       libc/ctype/libc_a-toascii.o
  CC       libc/ctype/libc_a-toascii_l.o
  CC       libc/ctype/libc_a-tolower_l.o
  CC       libc/ctype/libc_a-toupper_l.o
  CC       libc/ctype/libc_a-towctrans.o
  CC       libc/ctype/libc_a-towctrans_l.o
  CC       libc/ctype/libc_a-towlower.o
  CC       libc/ctype/libc_a-towlower_l.o
  CC       libc/ctype/libc_a-towupper.o
  CC       libc/ctype/libc_a-towupper_l.o
  CC       libc/ctype/libc_a-wctrans.o
  CC       libc/ctype/libc_a-wctrans_l.o
  CC       libc/ctype/libc_a-wctype.o
  CC       libc/ctype/libc_a-wctype_l.o
  CC       libc/search/libc_a-bsearch.o
  CC       libc/search/libc_a-ndbm.o
  CC       libc/search/libc_a-qsort.o
  CC       libc/search/libc_a-hash.o
  CC       libc/search/libc_a-hash_bigkey.o
  CC       libc/search/libc_a-hash_buf.o
  CC       libc/search/libc_a-hash_func.o
  CC       libc/search/libc_a-hash_log2.o
  CC       libc/search/libc_a-hash_page.o
  CC       libc/search/libc_a-hcreate.o
  CC       libc/search/libc_a-hcreate_r.o
  CC       libc/search/libc_a-tdelete.o
  CC       libc/search/libc_a-tdestroy.o
  CC       libc/search/libc_a-tfind.o
  CC       libc/search/libc_a-tsearch.o
  CC       libc/search/libc_a-twalk.o
  CC       libc/search/libc_a-bsd_qsort_r.o
  CC       libc/search/libc_a-qsort_r.o
  CC       libc/stdio/libc_a-fiprintf.o
  CC       libc/stdio/libc_a-fiscanf.o
  CC       libc/stdio/libc_a-iprintf.o
  CC       libc/stdio/libc_a-iscanf.o
  CC       libc/stdio/libc_a-siprintf.o
  CC       libc/stdio/libc_a-siscanf.o
  CC       libc/stdio/libc_a-sniprintf.o
  CC       libc/stdio/libc_a-svfiprintf.o
  CC       libc/stdio/libc_a-svfiscanf.o
  CC       libc/stdio/libc_a-svfprintf.o
  CC       libc/stdio/libc_a-svfscanf.o
  CC       libc/stdio/libc_a-vdiprintf.o
  CC       libc/stdio/libc_a-vfprintf.o
  CC       libc/stdio/libc_a-vfiprintf.o
  CC       libc/stdio/libc_a-vfiscanf.o
  CC       libc/stdio/libc_a-vfscanf.o
  CC       libc/stdio/libc_a-vfwprintf.o
  CC       libc/stdio/libc_a-viprintf.o
  CC       libc/stdio/libc_a-viscanf.o
  CC       libc/stdio/libc_a-vsiprintf.o
  CC       libc/stdio/libc_a-vsiscanf.o
  CC       libc/stdio/libc_a-vsniprintf.o
  CC       libc/stdio/libc_a-clearerr.o
  CC       libc/stdio/libc_a-fclose.o
  CC       libc/stdio/libc_a-fdopen.o
  CC       libc/stdio/libc_a-feof.o
  CC       libc/stdio/libc_a-ferror.o
  CC       libc/stdio/libc_a-fflush.o
  CC       libc/stdio/libc_a-fgetc.o
  CC       libc/stdio/libc_a-fgetpos.o
  CC       libc/stdio/libc_a-fgets.o
  CC       libc/stdio/libc_a-fileno.o
  CC       libc/stdio/libc_a-findfp.o
  CC       libc/stdio/libc_a-flags.o
  CC       libc/stdio/libc_a-fopen.o
  CC       libc/stdio/libc_a-fprintf.o
  CC       libc/stdio/libc_a-fputc.o
  CC       libc/stdio/libc_a-fputs.o
  CC       libc/stdio/libc_a-fread.o
  CC       libc/stdio/libc_a-freopen.o
  CC       libc/stdio/libc_a-fscanf.o
  CC       libc/stdio/libc_a-fseek.o
  CC       libc/stdio/libc_a-fsetpos.o
  CC       libc/stdio/libc_a-ftell.o
  CC       libc/stdio/libc_a-fvwrite.o
  CC       libc/stdio/libc_a-fwalk.o
  CC       libc/stdio/libc_a-fwrite.o
  CC       libc/stdio/libc_a-getc.o
  CC       libc/stdio/libc_a-getchar.o
  CC       libc/stdio/libc_a-getc_u.o
  CC       libc/stdio/libc_a-getchar_u.o
  CC       libc/stdio/libc_a-getdelim.o
  CC       libc/stdio/libc_a-getline.o
  CC       libc/stdio/libc_a-gets.o
  CC       libc/stdio/libc_a-makebuf.o
  CC       libc/stdio/libc_a-perror.o
  CC       libc/stdio/libc_a-printf.o
  CC       libc/stdio/libc_a-putc.o
  CC       libc/stdio/libc_a-putchar.o
  CC       libc/stdio/libc_a-putc_u.o
  CC       libc/stdio/libc_a-putchar_u.o
  CC       libc/stdio/libc_a-puts.o
  CC       libc/stdio/libc_a-refill.o
  CC       libc/stdio/libc_a-remove.o
  CC       libc/stdio/libc_a-rename.o
  CC       libc/stdio/libc_a-rewind.o
  CC       libc/stdio/libc_a-rget.o
  CC       libc/stdio/libc_a-scanf.o
  CC       libc/stdio/libc_a-sccl.o
  CC       libc/stdio/libc_a-setbuf.o
  CC       libc/stdio/libc_a-setbuffer.o
  CC       libc/stdio/libc_a-setlinebuf.o
  CC       libc/stdio/libc_a-setvbuf.o
  CC       libc/stdio/libc_a-snprintf.o
  CC       libc/stdio/libc_a-sprintf.o
  CC       libc/stdio/libc_a-sscanf.o
  CC       libc/stdio/libc_a-stdio.o
  CC       libc/stdio/libc_a-svfiwprintf.o
  CC       libc/stdio/libc_a-svfiwscanf.o
  CC       libc/stdio/libc_a-svfwprintf.o
  CC       libc/stdio/libc_a-svfwscanf.o
  CC       libc/stdio/libc_a-tmpfile.o
  CC       libc/stdio/libc_a-tmpnam.o
  CC       libc/stdio/libc_a-ungetc.o
  CC       libc/stdio/libc_a-vdprintf.o
  CC       libc/stdio/libc_a-vfiwprintf.o
  CC       libc/stdio/libc_a-vfiwscanf.o
  CC       libc/stdio/libc_a-vfwscanf.o
  CC       libc/stdio/libc_a-vprintf.o
  CC       libc/stdio/libc_a-vscanf.o
  CC       libc/stdio/libc_a-vsnprintf.o
  CC       libc/stdio/libc_a-vsprintf.o
  CC       libc/stdio/libc_a-vsscanf.o
  CC       libc/stdio/libc_a-wbuf.o
  CC       libc/stdio/libc_a-wsetup.o
  CC       libc/stdio/libc_a-asprintf.o
  CC       libc/stdio/libc_a-fcloseall.o
  CC       libc/stdio/libc_a-fseeko.o
  CC       libc/stdio/libc_a-ftello.o
  CC       libc/stdio/libc_a-getw.o
  CC       libc/stdio/libc_a-mktemp.o
  CC       libc/stdio/libc_a-putw.o
  CC       libc/stdio/libc_a-vasprintf.o
  CC       libc/stdio/libc_a-asiprintf.o
  CC       libc/stdio/libc_a-vasiprintf.o
  CC       libc/stdio/libc_a-asnprintf.o
  CC       libc/stdio/libc_a-clearerr_u.o
  CC       libc/stdio/libc_a-dprintf.o
  CC       libc/stdio/libc_a-feof_u.o
  CC       libc/stdio/libc_a-ferror_u.o
  CC       libc/stdio/libc_a-fflush_u.o
  CC       libc/stdio/libc_a-fgetc_u.o
  CC       libc/stdio/libc_a-fgets_u.o
  CC       libc/stdio/libc_a-fgetwc.o
  CC       libc/stdio/libc_a-fgetwc_u.o
  CC       libc/stdio/libc_a-fgetws.o
  CC       libc/stdio/libc_a-fgetws_u.o
  CC       libc/stdio/libc_a-fileno_u.o
  CC       libc/stdio/libc_a-fmemopen.o
  CC       libc/stdio/libc_a-fopencookie.o
  CC       libc/stdio/libc_a-fpurge.o
  CC       libc/stdio/libc_a-fputc_u.o
  CC       libc/stdio/libc_a-fputs_u.o
  CC       libc/stdio/libc_a-fputwc.o
  CC       libc/stdio/libc_a-fputwc_u.o
  CC       libc/stdio/libc_a-fputws.o
  CC       libc/stdio/libc_a-fputws_u.o
  CC       libc/stdio/libc_a-fread_u.o
  CC       libc/stdio/libc_a-fsetlocking.o
  CC       libc/stdio/libc_a-funopen.o
  CC       libc/stdio/libc_a-fwide.o
  CC       libc/stdio/libc_a-fwprintf.o
  CC       libc/stdio/libc_a-fwrite_u.o
  CC       libc/stdio/libc_a-fwscanf.o
  CC       libc/stdio/libc_a-getwc.o
  CC       libc/stdio/libc_a-getwc_u.o
  CC       libc/stdio/libc_a-getwchar.o
  CC       libc/stdio/libc_a-getwchar_u.o
  CC       libc/stdio/libc_a-open_memstream.o
  CC       libc/stdio/libc_a-putwc.o
  CC       libc/stdio/libc_a-putwc_u.o
  CC       libc/stdio/libc_a-putwchar.o
  CC       libc/stdio/libc_a-putwchar_u.o
  CC       libc/stdio/libc_a-stdio_ext.o
  CC       libc/stdio/libc_a-swprintf.o
  CC       libc/stdio/libc_a-swscanf.o
  CC       libc/stdio/libc_a-ungetwc.o
  CC       libc/stdio/libc_a-vasnprintf.o
  CC       libc/stdio/libc_a-vswprintf.o
  CC       libc/stdio/libc_a-vswscanf.o
  CC       libc/stdio/libc_a-vwprintf.o
  CC       libc/stdio/libc_a-vwscanf.o
  CC       libc/stdio/libc_a-wprintf.o
  CC       libc/stdio/libc_a-wscanf.o
  CC       libc/stdio/libc_a-asniprintf.o
  CC       libc/stdio/libc_a-diprintf.o
  CC       libc/stdio/libc_a-vasniprintf.o
  CC       libc/string/libc_a-bcopy.o
  CC       libc/string/libc_a-bzero.o
  CC       libc/string/libc_a-explicit_bzero.o
  CC       libc/string/libc_a-ffsl.o
  CC       libc/string/libc_a-ffsll.o
  CC       libc/string/libc_a-fls.o
  CC       libc/string/libc_a-flsl.o
  CC       libc/string/libc_a-flsll.o
  CC       libc/string/libc_a-index.o
  CC       libc/string/libc_a-memchr.o
  CC       libc/string/libc_a-memcmp.o
  CC       libc/string/libc_a-memcpy.o
  CC       libc/string/libc_a-memmove.o
  CC       libc/string/libc_a-memset.o
  CC       libc/string/libc_a-rindex.o
  CC       libc/string/libc_a-strcasecmp.o
  CC       libc/string/libc_a-strcat.o
  CC       libc/string/libc_a-strchr.o
  CC       libc/string/libc_a-strcmp.o
  CC       libc/string/libc_a-strcoll.o
  CC       libc/string/libc_a-strcpy.o
  CC       libc/string/libc_a-strcspn.o
  CC       libc/string/libc_a-strdup.o
  CC       libc/string/libc_a-strdup_r.o
  CC       libc/string/libc_a-strerror.o
  CC       libc/string/libc_a-strerror_r.o
  CC       libc/string/libc_a-strlcat.o
  CC       libc/string/libc_a-strlcpy.o
  CC       libc/string/libc_a-strlen.o
  CC       libc/string/libc_a-strlwr.o
  CC       libc/string/libc_a-strncasecmp.o
  CC       libc/string/libc_a-strncat.o
  CC       libc/string/libc_a-strncmp.o
  CC       libc/string/libc_a-strncpy.o
  CC       libc/string/libc_a-strnlen.o
  CC       libc/string/libc_a-strnstr.o
  CC       libc/string/libc_a-strpbrk.o
  CC       libc/string/libc_a-strrchr.o
  CC       libc/string/libc_a-strsep.o
  CC       libc/string/libc_a-strsignal.o
  CC       libc/string/libc_a-strspn.o
  CC       libc/string/libc_a-strtok.o
  CC       libc/string/libc_a-strtok_r.o
  CC       libc/string/libc_a-strupr.o
  CC       libc/string/libc_a-strxfrm.o
  CC       libc/string/libc_a-strstr.o
  CC       libc/string/libc_a-swab.o
  CC       libc/string/libc_a-timingsafe_bcmp.o
  CC       libc/string/libc_a-timingsafe_memcmp.o
  CC       libc/string/libc_a-u_strerr.o
  CC       libc/string/libc_a-wcscat.o
  CC       libc/string/libc_a-wcschr.o
  CC       libc/string/libc_a-wcscmp.o
  CC       libc/string/libc_a-wcscoll.o
  CC       libc/string/libc_a-wcscpy.o
  CC       libc/string/libc_a-wcscspn.o
  CC       libc/string/libc_a-wcslcat.o
  CC       libc/string/libc_a-wcslcpy.o
  CC       libc/string/libc_a-wcslen.o
  CC       libc/string/libc_a-wcsncat.o
  CC       libc/string/libc_a-wcsncmp.o
  CC       libc/string/libc_a-wcsncpy.o
  CC       libc/string/libc_a-wcsnlen.o
  CC       libc/string/libc_a-wcspbrk.o
  CC       libc/string/libc_a-wcsrchr.o
  CC       libc/string/libc_a-wcsspn.o
  CC       libc/string/libc_a-wcsstr.o
  CC       libc/string/libc_a-wcstok.o
  CC       libc/string/libc_a-wcswidth.o
  CC       libc/string/libc_a-wcsxfrm.o
  CC       libc/string/libc_a-wcwidth.o
  CC       libc/string/libc_a-wmemchr.o
  CC       libc/string/libc_a-wmemcmp.o
  CC       libc/string/libc_a-wmemcpy.o
  CC       libc/string/libc_a-wmemmove.o
  CC       libc/string/libc_a-wmemset.o
  CC       libc/string/libc_a-xpg_strerror_r.o
  CC       libc/string/libc_a-bcmp.o
  CC       libc/string/libc_a-memccpy.o
  CC       libc/string/libc_a-mempcpy.o
  CC       libc/string/libc_a-stpcpy.o
  CC       libc/string/libc_a-stpncpy.o
  CC       libc/string/libc_a-strndup.o
  CC       libc/string/libc_a-strcasestr.o
  CC       libc/string/libc_a-strchrnul.o
  CC       libc/string/libc_a-strndup_r.o
  CC       libc/string/libc_a-wcpncpy.o
  CC       libc/string/libc_a-wcpcpy.o
  CC       libc/string/libc_a-wcsdup.o
  CC       libc/string/libc_a-gnu_basename.o
  CC       libc/string/libc_a-memmem.o
  CC       libc/string/libc_a-memrchr.o
  CC       libc/string/libc_a-rawmemchr.o
  CC       libc/string/libc_a-strcasecmp_l.o
  CC       libc/string/libc_a-strcoll_l.o
  CC       libc/string/libc_a-strncasecmp_l.o
  CC       libc/string/libc_a-strverscmp.o
  CC       libc/string/libc_a-strxfrm_l.o
  CC       libc/string/libc_a-wcscasecmp.o
  CC       libc/string/libc_a-wcscasecmp_l.o
  CC       libc/string/libc_a-wcscoll_l.o
  CC       libc/string/libc_a-wcsncasecmp.o
  CC       libc/string/libc_a-wcsncasecmp_l.o
  CC       libc/string/libc_a-wcsxfrm_l.o
  CC       libc/string/libc_a-wmempcpy.o
  CC       libc/signal/libc_a-psignal.o
  CC       libc/signal/libc_a-raise.o
  CC       libc/signal/libc_a-signal.o
  CC       libc/signal/libc_a-sig2str.o
  CC       libc/time/libc_a-asctime.o
  CC       libc/time/libc_a-asctime_r.o
  CC       libc/time/libc_a-clock.o
  CC       libc/time/libc_a-ctime.o
  CC       libc/time/libc_a-ctime_r.o
  CC       libc/time/libc_a-difftime.o
  CC       libc/time/libc_a-gettzinfo.o
  CC       libc/time/libc_a-gmtime.o
  CC       libc/time/libc_a-gmtime_r.o
  CC       libc/time/libc_a-lcltime.o
  CC       libc/time/libc_a-lcltime_r.o
  CC       libc/time/libc_a-mktime.o
  CC       libc/time/libc_a-month_lengths.o
  CC       libc/time/libc_a-strftime.o
  CC       libc/time/libc_a-strptime.o
  CC       libc/time/libc_a-time.o
  CC       libc/time/libc_a-tzcalc_limits.o
  CC       libc/time/libc_a-tzlock.o
  CC       libc/time/libc_a-tzset.o
  CC       libc/time/libc_a-tzset_r.o
  CC       libc/time/libc_a-tzvars.o
  CC       libc/time/libc_a-wcsftime.o
  CC       libc/locale/libc_a-locale.o
  CC       libc/locale/libc_a-localeconv.o
  CC       libc/locale/libc_a-duplocale.o
  CC       libc/locale/libc_a-freelocale.o
  CC       libc/locale/libc_a-lctype.o
  CC       libc/locale/libc_a-lmessages.o
  CC       libc/locale/libc_a-lnumeric.o
  CC       libc/locale/libc_a-lmonetary.o
  CC       libc/locale/libc_a-newlocale.o
  CC       libc/locale/libc_a-nl_langinfo.o
  CC       libc/locale/libc_a-timelocal.o
  CC       libc/locale/libc_a-uselocale.o
  CC       libc/reent/libc_a-closer.o
  CC       libc/reent/libc_a-reent.o
  CC       libc/reent/libc_a-impure.o
  CC       libc/reent/libc_a-fcntlr.o
  CC       libc/reent/libc_a-fstatr.o
  CC       libc/reent/libc_a-getreent.o
  CC       libc/reent/libc_a-gettimeofdayr.o
  CC       libc/reent/libc_a-isattyr.o
  CC       libc/reent/libc_a-linkr.o
  CC       libc/reent/libc_a-lseekr.o
  CC       libc/reent/libc_a-mkdirr.o
  CC       libc/reent/libc_a-openr.o
  CC       libc/reent/libc_a-readr.o
  CC       libc/reent/libc_a-renamer.o
  CC       libc/reent/libc_a-signalr.o
  CC       libc/reent/libc_a-signgam.o
  CC       libc/reent/libc_a-sbrkr.o
  CC       libc/reent/libc_a-statr.o
  CC       libc/reent/libc_a-timesr.o
  CC       libc/reent/libc_a-unlinkr.o
  CC       libc/reent/libc_a-writer.o
  CC       libc/reent/libc_a-execr.o
  CC       libc/errno/libc_a-errno.o
  CC       libc/misc/libc_a-__dprintf.o
  CC       libc/misc/libc_a-unctrl.o
  CC       libc/misc/libc_a-ffs.o
  CC       libc/misc/libc_a-init.o
  CC       libc/misc/libc_a-fini.o
  CC       libc/misc/libc_a-lock.o
  CC       libc/posix/libc_a-closedir.o
  CC       libc/posix/libc_a-collate.o
  CC       libc/posix/libc_a-collcmp.o
  CC       libc/posix/libc_a-creat.o
  CC       libc/posix/libc_a-dirfd.o
  CC       libc/posix/libc_a-fnmatch.o
  CC       libc/posix/libc_a-glob.o
  CC       libc/posix/libc_a-_isatty.o
  CC       libc/posix/libc_a-isatty.o
  CC       libc/posix/libc_a-opendir.o
  CC       libc/posix/libc_a-readdir.o
  CC       libc/posix/libc_a-readdir_r.o
../../../newlib/libc/posix/glob.c: In function ‘g_lstat’:
../../../newlib/libc/posix/glob.c:847:16: warning: implicit declaration of function ‘lstat’; did you mean ‘_stat’? [-Wimplicit-function-declaration]
  847 |         return(lstat(buf, sb));
      |                ^~~~~
      |                _stat
  CC       libc/posix/libc_a-regcomp.o
  CC       libc/posix/libc_a-regerror.o
  CC       libc/posix/libc_a-regexec.o
  CC       libc/posix/libc_a-regfree.o
  CC       libc/posix/libc_a-rewinddir.o
  CC       libc/posix/libc_a-sleep.o
  CC       libc/posix/libc_a-usleep.o
  CC       libc/posix/libc_a-telldir.o
  CC       libc/posix/libc_a-ftw.o
  CC       libc/posix/libc_a-nftw.o
  CC       libc/posix/libc_a-scandir.o
  CC       libc/posix/libc_a-seekdir.o
../../../newlib/libc/posix/nftw.c: In function ‘do_nftw’:
../../../newlib/libc/posix/nftw.c:56:34: warning: implicit declaration of function ‘lstat’; did you mean ‘_stat’? [-Wimplicit-function-declaration]
   56 |         if ((flags & FTW_PHYS) ? lstat(path, &st) : stat(path, &st) < 0) {
      |                                  ^~~~~
      |                                  _stat
  CC       libc/posix/libc_a-execl.o
  CC       libc/posix/libc_a-execle.o
  CC       libc/posix/libc_a-execlp.o
  CC       libc/posix/libc_a-execv.o
  CC       libc/posix/libc_a-execve.o
  CC       libc/posix/libc_a-execvp.o
  CC       libc/posix/libc_a-wordexp.o
  CC       libc/posix/libc_a-wordfree.o
  CC       libc/posix/libc_a-popen.o
  CC       libc/posix/libc_a-posix_spawn.o
  CC       libc/syscalls/libc_a-sysclose.o
  CC       libc/syscalls/libc_a-sysfcntl.o
../../../newlib/libc/posix/posix_spawn.c: In function ‘process_spawnattr’:
../../../newlib/libc/posix/posix_spawn.c:169:21: warning: implicit declaration of function ‘sched_setscheduler’ [-Wimplicit-function-declaration]
  169 |                 if (sched_setscheduler(0, sa->sa_schedpolicy,
      |                     ^~~~~~~~~~~~~~~~~~
../../../newlib/libc/posix/posix_spawn.c:173:21: warning: implicit declaration of function ‘sched_setparam’ [-Wimplicit-function-declaration]
  173 |                 if (sched_setparam(0, &sa->sa_schedparam) != 0)
      |                     ^~~~~~~~~~~~~~
  CC       libc/syscalls/libc_a-sysfstat.o
  CC       libc/syscalls/libc_a-sysgetpid.o
  CC       libc/syscalls/libc_a-sysgettod.o
  CC       libc/syscalls/libc_a-sysisatty.o
  CC       libc/syscalls/libc_a-syskill.o
  CC       libc/syscalls/libc_a-syslink.o
  CC       libc/syscalls/libc_a-syslseek.o
  CC       libc/syscalls/libc_a-sysopen.o
  CC       libc/syscalls/libc_a-sysread.o
  CC       libc/syscalls/libc_a-syssbrk.o
  CC       libc/syscalls/libc_a-sysstat.o
  CC       libc/syscalls/libc_a-systimes.o
  CC       libc/syscalls/libc_a-sysunlink.o
  CC       libc/syscalls/libc_a-syswrite.o
  CC       libc/syscalls/libc_a-sysexecve.o
  CC       libc/syscalls/libc_a-sysfork.o
  CC       libc/syscalls/libc_a-syswait.o
  CC       libc/ssp/libc_a-chk_fail.o
  CC       libc/ssp/libc_a-stack_protector.o
  CC       libc/ssp/libc_a-memcpy_chk.o
  CC       libc/ssp/libc_a-memmove_chk.o
  CC       libc/ssp/libc_a-mempcpy_chk.o
  CC       libc/ssp/libc_a-memset_chk.o
  CC       libc/ssp/libc_a-stpcpy_chk.o
  CC       libc/ssp/libc_a-stpncpy_chk.o
  CC       libc/ssp/libc_a-strcat_chk.o
  CC       libc/ssp/libc_a-strcpy_chk.o
  CC       libc/ssp/libc_a-strncat_chk.o
  CC       libc/ssp/libc_a-strncpy_chk.o
  CC       libc/ssp/libc_a-gets_chk.o
  CC       libc/ssp/libc_a-snprintf_chk.o
  CC       libc/ssp/libc_a-sprintf_chk.o
  CC       libc/ssp/libc_a-vsnprintf_chk.o
  CC       libc/ssp/libc_a-vsprintf_chk.o
  CPPAS    libc/machine/r5900/libc_a-setjmp.o
  CC       libc/sys/ps2/crt0.o
  AR       libm.a
../../../newlib/libc/sys/ps2/crt0.c:3:1: fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such file or directory
    3 | void _start() { }
      | ^~~~
compilation terminated.
make[3]: *** [libc/sys/ps2/crt0.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all] Error 2
make[1]: *** [all-target-newlib] Error 2
make: *** [all] Error 2

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

* Re: PlayStation 2 newlib port
  2023-06-20  7:05   ` Francisco Javier Trujillo Mata
@ 2023-09-19 16:38     ` Francisco Javier Trujillo Mata
  2023-09-19 20:42       ` Jeff Johnston
  0 siblings, 1 reply; 5+ messages in thread
From: Francisco Javier Trujillo Mata @ 2023-09-19 16:38 UTC (permalink / raw)
  To: Jeff Johnston; +Cc: newlib

[-- Attachment #1: Type: text/plain, Size: 5516 bytes --]

Any update here?

I'm really interested in this, I would like to mainstream PS2 and PSP, and
I'm also aware that the Dreamcast community is also preparing it for
mainstreaming it.

Cheers

El mar, 20 jun 2023 a las 9:05, Francisco Javier Trujillo Mata (<
fjtrujy@gmail.com>) escribió:

> Hello Jeff,
>
> First of all thanks for replying and paying attention to my message.
>
> To install the proper PS2 Environment to be able to compile and generate
> PS2 binaries, you require to follow the steps given here:
> https://github.com/ps2dev/ps2dev
>
> The PS2 is a complex machine, (it has 3 main CPUs DVP, IOP, and EE, which
> means 3 toolchains...) so the whole PS2 development environment is not an
> easy thing, there are plenty of tools and repositories involved, and as
> part of this set of tools, and we also have Newlib, as you can see in the
> next link (which is using a fork with our specific changes).
> https://github.com/ps2dev/ps2toolchain-ee/blob/main/scripts/003-newlib.sh
>
> However, if we just want to check if Newlib compiles for this PS2 port we
> are creating, we just need to pay attention to the EE CPU, which is the
> next repo:
> https://github.com/ps2dev/ps2toolchain-ee
> There under the "scripts" folder, you can see how Newlib is the 3rd step,
> so if we want to check if Newlib is compiling, you just need to have proper
> binutils and GCC installed previously (first and second steps).
>
> Additionally, to make easier the usage of the whole PS2 toolchain, we are
> offering some precompiled toolchains:
> https://github.com/ps2dev/ps2dev/releases/tag/latest
> And also the possibility of using dockers:
>
> https://hub.docker.com/layers/ps2dev/ps2dev/latest/images/sha256-e6000652581b4d43d135f1862ecccabe4b11dd2afa3edb667b48736d815b59c1?context=explore
>
> For executing the generated binaries, you will require either a PS2 that
> allows you to execute homebrews or a PS2 emulator.
>
> Regarding the changes I have made, all the files have been created from
> scratch for me, anyway, I'm part of the PS2Dev community, so I will add the
> PS2DEV license to these files.
>
>
> Finally, regarding my original request, I was suffering issues when
> compiling Newlib after adding the specific PS2 changes, I have found a
> workaround to make it work, that probably will tell you more about the
> actual issue.
> When adding a new "sys" to the Newlib, in our case "newlib/libc/sys/ps2",
> if you just add the crt0 file (it doesn't matter if it is .S, .s or .c),
> which means that you "Makefile.inc" is going to be empty, you will suffer
> the compilations issues that I previously mentioned.
> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
> file or directory
>
> However, if you add an extra file in the sys/ps2 directory, like a dummy.c
> empty, and obviously, add the reference of this file into the
> "Makefile.inc", then the library compiles properly generating the expected
> ".a" and ".o" files.
>
> I suppose that the same issue that I'm speaking about most probably is
> also being suffered with the tic80 system.
> https://github.com/bminor/newlib/tree/master/newlib/libc/sys/tic80
>
> Finally, I'm going to attach the compilation log.
>
>
> Regards,
> Francisco.
>
> El lun, 19 jun 2023 a las 22:42, Jeff Johnston (<jjohnstn@redhat.com>)
> escribió:
>
>> Hi Francisco,
>>
>> If you would like help, I would suggest you tell others where they can
>> get a proper toolset to build with or at least
>> attach your build log which may provide more info.  I certainly don't
>> have a Playstation 2 toolset hanging around.
>>
>> In addition, looking at your patches, you are missing copyright/licensing
>> info for the new files you are adding
>> (as opposed to existing files you are modifying).  If you are taking code
>> from another location, you cannot change
>> their license/copyright.  If you wrote these from scratch you should
>> indicate this but you still need to add the licensing/copyright
>> info.
>>
>> Regards,
>>
>> -- Jeff J.
>>
>> On Tue, Jun 13, 2023 at 2:31 PM Francisco Javier Trujillo Mata <
>> fjtrujy@gmail.com> wrote:
>>
>>> Hi there!
>>> I would like to mainstream the PS2 newlib port. So far the PS2 has had
>>> newlib ports for years, however, it was never intended to be merged into
>>> the mainstream.
>>>
>>> I'm now trying to port to the latest release 4.3.0, however, I'm
>>> suffering
>>> some errors during the compilation process.
>>>
>>> I have attached the changes that I have done so far.
>>> Then I just rerun the command `autoreconf` using the proper autoconf and
>>> automake versions
>>>
>>> I execute `configure` with:
>>>
>>> PROC_NR=$(getconf _NPROCESSORS_ONLN)
>>>
>>> TARGET="mips64r5900el-ps2-elf"
>>> TARGET_ALIAS="ee"
>>>
>>> ## Create and enter the toolchain/build directory
>>> rm -rf "build-$TARGET"
>>> mkdir "build-$TARGET"
>>> cd "build-$TARGET"
>>>
>>> ## Configure the build.
>>> CFLAGS_FOR_TARGET="-O2" ../configure \
>>> --prefix="$PS2DEV/$TARGET_ALIAS" \
>>> --target="$TARGET" \
>>> --enable-newlib-retargetable-locking \
>>> $TARG_XTRA_OPTS
>>>
>>> ## Compile and install.
>>> make -j "$PROC_NR" all
>>>
>>>
>>> And then it always fails with this error,
>>>
>>> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
>>> file or directory
>>>
>>> Could you help me to identify where the issue is?
>>>
>>> Cheers.
>>>
>>

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

* Re: PlayStation 2 newlib port
  2023-09-19 16:38     ` Francisco Javier Trujillo Mata
@ 2023-09-19 20:42       ` Jeff Johnston
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff Johnston @ 2023-09-19 20:42 UTC (permalink / raw)
  To: Francisco Javier Trujillo Mata; +Cc: newlib

[-- Attachment #1: Type: text/plain, Size: 5956 bytes --]

Hi Francisco,

There were issues with the previous patch which did not have copyright
headers.  I don't see an updated patch in my mail logs.  Did you submit one?

-- Jeff J.

On Tue, Sep 19, 2023 at 12:38 PM Francisco Javier Trujillo Mata <
fjtrujy@gmail.com> wrote:

> Any update here?
>
> I'm really interested in this, I would like to mainstream PS2 and PSP, and
> I'm also aware that the Dreamcast community is also preparing it for
> mainstreaming it.
>
> Cheers
>
> El mar, 20 jun 2023 a las 9:05, Francisco Javier Trujillo Mata (<
> fjtrujy@gmail.com>) escribió:
>
>> Hello Jeff,
>>
>> First of all thanks for replying and paying attention to my message.
>>
>> To install the proper PS2 Environment to be able to compile and generate
>> PS2 binaries, you require to follow the steps given here:
>> https://github.com/ps2dev/ps2dev
>>
>> The PS2 is a complex machine, (it has 3 main CPUs DVP, IOP, and EE, which
>> means 3 toolchains...) so the whole PS2 development environment is not an
>> easy thing, there are plenty of tools and repositories involved, and as
>> part of this set of tools, and we also have Newlib, as you can see in the
>> next link (which is using a fork with our specific changes).
>> https://github.com/ps2dev/ps2toolchain-ee/blob/main/scripts/003-newlib.sh
>>
>> However, if we just want to check if Newlib compiles for this PS2 port we
>> are creating, we just need to pay attention to the EE CPU, which is the
>> next repo:
>> https://github.com/ps2dev/ps2toolchain-ee
>> There under the "scripts" folder, you can see how Newlib is the 3rd step,
>> so if we want to check if Newlib is compiling, you just need to have proper
>> binutils and GCC installed previously (first and second steps).
>>
>> Additionally, to make easier the usage of the whole PS2 toolchain, we are
>> offering some precompiled toolchains:
>> https://github.com/ps2dev/ps2dev/releases/tag/latest
>> And also the possibility of using dockers:
>>
>> https://hub.docker.com/layers/ps2dev/ps2dev/latest/images/sha256-e6000652581b4d43d135f1862ecccabe4b11dd2afa3edb667b48736d815b59c1?context=explore
>>
>> For executing the generated binaries, you will require either a PS2 that
>> allows you to execute homebrews or a PS2 emulator.
>>
>> Regarding the changes I have made, all the files have been created from
>> scratch for me, anyway, I'm part of the PS2Dev community, so I will add the
>> PS2DEV license to these files.
>>
>>
>> Finally, regarding my original request, I was suffering issues when
>> compiling Newlib after adding the specific PS2 changes, I have found a
>> workaround to make it work, that probably will tell you more about the
>> actual issue.
>> When adding a new "sys" to the Newlib, in our case "newlib/libc/sys/ps2",
>> if you just add the crt0 file (it doesn't matter if it is .S, .s or .c),
>> which means that you "Makefile.inc" is going to be empty, you will suffer
>> the compilations issues that I previously mentioned.
>> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
>> file or directory
>>
>> However, if you add an extra file in the sys/ps2 directory, like a
>> dummy.c empty, and obviously, add the reference of this file into the
>> "Makefile.inc", then the library compiles properly generating the expected
>> ".a" and ".o" files.
>>
>> I suppose that the same issue that I'm speaking about most probably is
>> also being suffered with the tic80 system.
>> https://github.com/bminor/newlib/tree/master/newlib/libc/sys/tic80
>>
>> Finally, I'm going to attach the compilation log.
>>
>>
>> Regards,
>> Francisco.
>>
>> El lun, 19 jun 2023 a las 22:42, Jeff Johnston (<jjohnstn@redhat.com>)
>> escribió:
>>
>>> Hi Francisco,
>>>
>>> If you would like help, I would suggest you tell others where they can
>>> get a proper toolset to build with or at least
>>> attach your build log which may provide more info.  I certainly don't
>>> have a Playstation 2 toolset hanging around.
>>>
>>> In addition, looking at your patches, you are missing
>>> copyright/licensing info for the new files you are adding
>>> (as opposed to existing files you are modifying).  If you are taking
>>> code from another location, you cannot change
>>> their license/copyright.  If you wrote these from scratch you should
>>> indicate this but you still need to add the licensing/copyright
>>> info.
>>>
>>> Regards,
>>>
>>> -- Jeff J.
>>>
>>> On Tue, Jun 13, 2023 at 2:31 PM Francisco Javier Trujillo Mata <
>>> fjtrujy@gmail.com> wrote:
>>>
>>>> Hi there!
>>>> I would like to mainstream the PS2 newlib port. So far the PS2 has had
>>>> newlib ports for years, however, it was never intended to be merged into
>>>> the mainstream.
>>>>
>>>> I'm now trying to port to the latest release 4.3.0, however, I'm
>>>> suffering
>>>> some errors during the compilation process.
>>>>
>>>> I have attached the changes that I have done so far.
>>>> Then I just rerun the command `autoreconf` using the proper autoconf and
>>>> automake versions
>>>>
>>>> I execute `configure` with:
>>>>
>>>> PROC_NR=$(getconf _NPROCESSORS_ONLN)
>>>>
>>>> TARGET="mips64r5900el-ps2-elf"
>>>> TARGET_ALIAS="ee"
>>>>
>>>> ## Create and enter the toolchain/build directory
>>>> rm -rf "build-$TARGET"
>>>> mkdir "build-$TARGET"
>>>> cd "build-$TARGET"
>>>>
>>>> ## Configure the build.
>>>> CFLAGS_FOR_TARGET="-O2" ../configure \
>>>> --prefix="$PS2DEV/$TARGET_ALIAS" \
>>>> --target="$TARGET" \
>>>> --enable-newlib-retargetable-locking \
>>>> $TARG_XTRA_OPTS
>>>>
>>>> ## Compile and install.
>>>> make -j "$PROC_NR" all
>>>>
>>>>
>>>> And then it always fails with this error,
>>>>
>>>> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No
>>>> such
>>>> file or directory
>>>>
>>>> Could you help me to identify where the issue is?
>>>>
>>>> Cheers.
>>>>
>>>

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

end of thread, other threads:[~2023-09-19 20:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-13 18:31 PlayStation 2 newlib port Francisco Javier Trujillo Mata
2023-06-19 20:41 ` Jeff Johnston
2023-06-20  7:05   ` Francisco Javier Trujillo Mata
2023-09-19 16:38     ` Francisco Javier Trujillo Mata
2023-09-19 20:42       ` Jeff Johnston

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 read-only IMAP folder(s) and NNTP newsgroup(s).