public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [AArch64] nosys.specs and printf
@ 2017-09-19  6:21 Alexander Fedotov
  2017-09-19 17:43 ` Tamar Christina
  0 siblings, 1 reply; 12+ messages in thread
From: Alexander Fedotov @ 2017-09-19  6:21 UTC (permalink / raw)
  To: newlib

Hello all

I'm trying to compile following simple program for aarch64 with nosys specs

#include <stdio.h>
int main(void) {
  printf("hello");
  return 0;
}

But I've got:
d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-sbrkr.o):
In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0x1c): undefined reference to `_sbrk'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
In function `_write_r':
writer.c:(.text._write_r+0x24): undefined reference to `_write'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
In function `_close_r':
closer.c:(.text._close_r+0x1c): undefined reference to `_close'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
In function `_fstat_r':
fstatr.c:(.text._fstat_r+0x20): undefined reference to `_fstat'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
In function `_isatty_r':
isattyr.c:(.text._isatty_r+0x1c): undefined reference to `_isatty'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x24): undefined reference to `_lseek'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
In function `_read_r':
readr.c:(.text._read_r+0x24): undefined reference to `_read'
collect2.exe: error: ld returned 1 exit status

d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=rdimon.specs test.c

d:\gcc-6.3-arm64-eabi\bin>


I tried to reconfigure libnosys  in the same way as ARM port:

diff -ruN newlib-2.5.0/libgloss/libnosys/configure
newlib-2.5.0/libgloss/libnosys/configure
--- newlib-2.5.0/libgloss/libnosys/configure    2016-12-23
05:33:54.000000000 +0300
+++ newlib-2.5.0/libgloss/libnosys/configure    2017-09-15
13:14:56.412457618 +0300
@@ -2009,6 +2009,8 @@
     ;;
   a29k-amd-udi)
     ;;
+  aarch64*-*-*)
+    ;;
   arc-*-*)
     ;;
   arm*-*-*)
diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
newlib-2.5.0/libgloss/libnosys/configure.in
--- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
05:33:54.000000000 +0300
+++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-14
18:32:27.330466884 +0300
@@ -43,6 +43,8 @@
     ;;
   a29k-amd-udi)
     ;;
+  aarch64*-*-*)
+    ;;
   arc-*-*)
     ;;
   arm*-*-*)

It now compiles so I get final elf, but with warnings:
d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
In function `_close_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/closer.c:53:
warning: _close is not impl
emented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
In function `_fstat_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/fstatr.c:62:
warning: _fstat is not impl
emented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
In function `_isatty_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/isattyr.c:58:
warning: _isatty is not im
plemented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
In function `_lseek_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/lseekr.c:58:
warning: _lseek is not impl
emented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
In function `_read_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/readr.c:58:
warning: _read is not implem
ented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
In function `_write_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/writer.c:58:
warning: _write is not impl
emented and will always fail


Hi do I correctly to configure AArch64 nosys ?

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

* Re: [AArch64] nosys.specs and printf
  2017-09-19  6:21 [AArch64] nosys.specs and printf Alexander Fedotov
@ 2017-09-19 17:43 ` Tamar Christina
       [not found]   ` <CAN8C2Crygk-MsBz-=x5qa0pJ-2SvOQoOwdqcJztxppdTskEkdg@mail.gmail.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Tamar Christina @ 2017-09-19 17:43 UTC (permalink / raw)
  To: Alexander Fedotov, newlib; +Cc: nd

Hi Alexander,

I believe your changes to libnosys are correct. We don't actually support nosys on AArch64, enough stuff has been committed for particular use cases but that's about it.

The warnings you get with your libnosys changes are correct in that libnosys doesn't provide any IO functionality, so you don't have open, close, read and write. Which means your printf example won't work and it's just warning you ahead of time.

Kind regards,
Tamar
________________________________________
From: newlib-owner@sourceware.org <newlib-owner@sourceware.org> on behalf of Alexander Fedotov <alfedotov@gmail.com>
Sent: Friday, September 15, 2017 11:43:23 AM
To: newlib@sourceware.org
Subject: [AArch64] nosys.specs and printf

Hello all

I'm trying to compile following simple program for aarch64 with nosys specs

#include <stdio.h>
int main(void) {
  printf("hello");
  return 0;
}

But I've got:
d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-sbrkr.o):
In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0x1c): undefined reference to `_sbrk'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
In function `_write_r':
writer.c:(.text._write_r+0x24): undefined reference to `_write'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
In function `_close_r':
closer.c:(.text._close_r+0x1c): undefined reference to `_close'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
In function `_fstat_r':
fstatr.c:(.text._fstat_r+0x20): undefined reference to `_fstat'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
In function `_isatty_r':
isattyr.c:(.text._isatty_r+0x1c): undefined reference to `_isatty'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x24): undefined reference to `_lseek'
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
In function `_read_r':
readr.c:(.text._read_r+0x24): undefined reference to `_read'
collect2.exe: error: ld returned 1 exit status

d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=rdimon.specs test.c

d:\gcc-6.3-arm64-eabi\bin>


I tried to reconfigure libnosys  in the same way as ARM port:

diff -ruN newlib-2.5.0/libgloss/libnosys/configure
newlib-2.5.0/libgloss/libnosys/configure
--- newlib-2.5.0/libgloss/libnosys/configure    2016-12-23
05:33:54.000000000 +0300
+++ newlib-2.5.0/libgloss/libnosys/configure    2017-09-15
13:14:56.412457618 +0300
@@ -2009,6 +2009,8 @@
     ;;
   a29k-amd-udi)
     ;;
+  aarch64*-*-*)
+    ;;
   arc-*-*)
     ;;
   arm*-*-*)
diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
newlib-2.5.0/libgloss/libnosys/configure.in
--- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
05:33:54.000000000 +0300
+++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-14
18:32:27.330466884 +0300
@@ -43,6 +43,8 @@
     ;;
   a29k-amd-udi)
     ;;
+  aarch64*-*-*)
+    ;;
   arc-*-*)
     ;;
   arm*-*-*)

It now compiles so I get final elf, but with warnings:
d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
In function `_close_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/closer.c:53:
warning: _close is not impl
emented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
In function `_fstat_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/fstatr.c:62:
warning: _fstat is not impl
emented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
In function `_isatty_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/isattyr.c:58:
warning: _isatty is not im
plemented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
In function `_lseek_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/lseekr.c:58:
warning: _lseek is not impl
emented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
In function `_read_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/readr.c:58:
warning: _read is not implem
ented and will always fail
d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
In function `_write_r':
/home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/writer.c:58:
warning: _write is not impl
emented and will always fail


Hi do I correctly to configure AArch64 nosys ?

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

* Re: [AArch64] nosys.specs and printf
       [not found]       ` <CAN8C2CoX3aHHe2WixnQM1eHzigdLgb4A44v=BQj2Cs60tmmUHw@mail.gmail.com>
@ 2017-09-20 13:40         ` Alexander Fedotov
  2017-09-20 14:03           ` Tamar Christina
  0 siblings, 1 reply; 12+ messages in thread
From: Alexander Fedotov @ 2017-09-20 13:40 UTC (permalink / raw)
  To: Tamar Christina; +Cc: newlib, nd

Hi Tamar

I've managed to suppress this message for nosys and it looks beter to
me. How do you think about upstream this ?

diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
newlib-2.5.0/libgloss/libnosys/configure.in
--- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
05:33:54.000000000 +0300
+++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-20
16:15:31.346520052 +0300
@@ -43,6 +43,8 @@
     ;;
   a29k-amd-udi)
     ;;
+  aarch64*-*-*)
+    ;;
   arc-*-*)
     ;;
   arm*-*-*)
@@ -88,6 +90,9 @@

 dnl Make sure we know if elf format used
 case "${target}" in
+  aarch64*-*-*)
+    #suppress "warning: _close etc is not implemented and will always fail"
+    ;;
   *-*-elf)
         AC_DEFINE(HAVE_ELF)

Alex

On Wed, Sep 20, 2017 at 10:31 AM, Alexander Fedotov <alfedotov@gmail.com> wrote:
> So can we have approach in aarch64 the same ARM already has? To
> simplify further support.
> I know that aarch64 is more preferable with Linux to use. But some
> customers want to have baremetal with newlib like for ARM.
>
> Alex
>
> On Tue, Sep 19, 2017 at 5:43 PM, Tamar Christina
> <Tamar.Christina@arm.com> wrote:
>> Hi Alex,
>>
>> It's not that ARM is working, in the sense it does anything useful,
>>
>> It's just that the warnings don't seem to be emitted because the conftests in libgloss/libnosys/configure.in are too simplistic,
>> for instance it tests for elf platforms by seeing if the target triple ends with "-elf".
>>
>> However, just like aarch64, using nosys gives you stubs and not actual code.
>>
>> /d/t/g/s/gcc (master ↩☡=) ../../build-arm-none-eabi/install/bin/arm-none-eabi-gcc test.c --specs=nosys.specs
>> /d/t/g/s/gcc (master ↩☡=) ../../build-arm-none-eabi/install/bin/arm-none-eabi-objdump -d a.out
>>
>> ...
>> 0000b0b4 <_lseek>:
>>     b0b4:       e3a02058        mov     r2, #88 ; 0x58
>>     b0b8:       e59f3008        ldr     r3, [pc, #8]    ; b0c8 <_lseek+0x14>
>>     b0bc:       e3e00000        mvn     r0, #0
>>     b0c0:       e5832000        str     r2, [r3]
>>     b0c4:       e12fff1e        bx      lr
>>     b0c8:       0001b9fc        .word   0x0001b9fc
>>
>> 0000b0cc <_read>:
>>     b0cc:       e3a02058        mov     r2, #88 ; 0x58
>>     b0d0:       e59f3008        ldr     r3, [pc, #8]    ; b0e0 <_read+0x14>
>>     b0d4:       e3e00000        mvn     r0, #0
>>     b0d8:       e5832000        str     r2, [r3]
>>     b0dc:       e12fff1e        bx      lr
>>     b0e0:       0001b9fc        .word   0x0001b9fc
>> ...
>>
>> They all just return -1 and set ERRNO just as expected. https://github.com/eblot/newlib/blob/master/libgloss/libnosys/read.c
>>
>> So Aarch64 is actually working as intended, it's ARM that's missing the warnings. And yeah, in order to suppress the warnings
>> you need to provide an alternate implementation.
>>
>> Tamar.
>> ________________________________________
>> From: Alexander Fedotov <alfedotov@gmail.com>
>> Sent: Tuesday, September 19, 2017 2:15 PM
>> To: Tamar Christina
>> Subject: Re: [AArch64] nosys.specs and printf
>>
>> Hello Tamar
>>
>> Well that's sounds to me like newlib completely useless for aarch64 in
>> current state.
>> So if I want to use nosys in my way I need to implement empty stubs to
>> suppress these warnings ? Right ?
>>
>> How nosys ARM port is working in such case ?
>>
>> BR,
>> Alex
>>
>>
>> On Tue, Sep 19, 2017 at 2:08 PM, Tamar Christina
>> <Tamar.Christina@arm.com> wrote:
>>> Hi Alexander,
>>>
>>> I believe your changes to libnosys are correct. We don't actually support nosys on AArch64, enough stuff has been committed for particular use cases but that's about it.
>>>
>>> The warnings you get with your libnosys changes are correct in that libnosys doesn't provide any IO functionality, so you don't have open, close, read and write. Which means your printf example won't work and it's just warning you ahead of time.
>>>
>>> Kind regards,
>>> Tamar
>>> ________________________________________
>>> From: newlib-owner@sourceware.org <newlib-owner@sourceware.org> on behalf of Alexander Fedotov <alfedotov@gmail.com>
>>> Sent: Friday, September 15, 2017 11:43:23 AM
>>> To: newlib@sourceware.org
>>> Subject: [AArch64] nosys.specs and printf
>>>
>>> Hello all
>>>
>>> I'm trying to compile following simple program for aarch64 with nosys specs
>>>
>>> #include <stdio.h>
>>> int main(void) {
>>>   printf("hello");
>>>   return 0;
>>> }
>>>
>>> But I've got:
>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-sbrkr.o):
>>> In function `_sbrk_r':
>>> sbrkr.c:(.text._sbrk_r+0x1c): undefined reference to `_sbrk'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
>>> In function `_write_r':
>>> writer.c:(.text._write_r+0x24): undefined reference to `_write'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
>>> In function `_close_r':
>>> closer.c:(.text._close_r+0x1c): undefined reference to `_close'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
>>> In function `_fstat_r':
>>> fstatr.c:(.text._fstat_r+0x20): undefined reference to `_fstat'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
>>> In function `_isatty_r':
>>> isattyr.c:(.text._isatty_r+0x1c): undefined reference to `_isatty'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
>>> In function `_lseek_r':
>>> lseekr.c:(.text._lseek_r+0x24): undefined reference to `_lseek'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
>>> In function `_read_r':
>>> readr.c:(.text._read_r+0x24): undefined reference to `_read'
>>> collect2.exe: error: ld returned 1 exit status
>>>
>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=rdimon.specs test.c
>>>
>>> d:\gcc-6.3-arm64-eabi\bin>
>>>
>>>
>>> I tried to reconfigure libnosys  in the same way as ARM port:
>>>
>>> diff -ruN newlib-2.5.0/libgloss/libnosys/configure
>>> newlib-2.5.0/libgloss/libnosys/configure
>>> --- newlib-2.5.0/libgloss/libnosys/configure    2016-12-23
>>> 05:33:54.000000000 +0300
>>> +++ newlib-2.5.0/libgloss/libnosys/configure    2017-09-15
>>> 13:14:56.412457618 +0300
>>> @@ -2009,6 +2009,8 @@
>>>      ;;
>>>    a29k-amd-udi)
>>>      ;;
>>> +  aarch64*-*-*)
>>> +    ;;
>>>    arc-*-*)
>>>      ;;
>>>    arm*-*-*)
>>> diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
>>> newlib-2.5.0/libgloss/libnosys/configure.in
>>> --- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
>>> 05:33:54.000000000 +0300
>>> +++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-14
>>> 18:32:27.330466884 +0300
>>> @@ -43,6 +43,8 @@
>>>      ;;
>>>    a29k-amd-udi)
>>>      ;;
>>> +  aarch64*-*-*)
>>> +    ;;
>>>    arc-*-*)
>>>      ;;
>>>    arm*-*-*)
>>>
>>> It now compiles so I get final elf, but with warnings:
>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
>>> In function `_close_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/closer.c:53:
>>> warning: _close is not impl
>>> emented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
>>> In function `_fstat_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/fstatr.c:62:
>>> warning: _fstat is not impl
>>> emented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
>>> In function `_isatty_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/isattyr.c:58:
>>> warning: _isatty is not im
>>> plemented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
>>> In function `_lseek_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/lseekr.c:58:
>>> warning: _lseek is not impl
>>> emented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
>>> In function `_read_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/readr.c:58:
>>> warning: _read is not implem
>>> ented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
>>> In function `_write_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/writer.c:58:
>>> warning: _write is not impl
>>> emented and will always fail
>>>
>>>
>>> Hi do I correctly to configure AArch64 nosys ?
>>
>>
>>
>> --
>> Best regards,
>> AF
>
>
>
> --
> Best regards,
> AF



-- 
Best regards,
AF

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

* Re: [AArch64] nosys.specs and printf
  2017-09-20 13:40         ` Alexander Fedotov
@ 2017-09-20 14:03           ` Tamar Christina
  2017-09-20 14:08             ` Alexander Fedotov
  0 siblings, 1 reply; 12+ messages in thread
From: Tamar Christina @ 2017-09-20 14:03 UTC (permalink / raw)
  To: Alexander Fedotov; +Cc: newlib, nd

Hi Alex,

I don't believe we want to suppress the warnings, the fact that arm currently does seems
to me to be a bug rather than a feature. The warnings are there to tell you your application
will not work if you call any of those functions.

Did you try running the example you're compiling? I'd be surprised if it worked.

Regards,
Tamar
________________________________________
From: Alexander Fedotov <alfedotov@gmail.com>
Sent: Wednesday, September 20, 2017 2:19 PM
To: Tamar Christina
Cc: newlib@sourceware.org; nd
Subject: Re: [AArch64] nosys.specs and printf

Hi Tamar

I've managed to suppress this message for nosys and it looks beter to
me. How do you think about upstream this ?

diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
newlib-2.5.0/libgloss/libnosys/configure.in
--- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
05:33:54.000000000 +0300
+++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-20
16:15:31.346520052 +0300
@@ -43,6 +43,8 @@
     ;;
   a29k-amd-udi)
     ;;
+  aarch64*-*-*)
+    ;;
   arc-*-*)
     ;;
   arm*-*-*)
@@ -88,6 +90,9 @@

 dnl Make sure we know if elf format used
 case "${target}" in
+  aarch64*-*-*)
+    #suppress "warning: _close etc is not implemented and will always fail"
+    ;;
   *-*-elf)
         AC_DEFINE(HAVE_ELF)

Alex

On Wed, Sep 20, 2017 at 10:31 AM, Alexander Fedotov <alfedotov@gmail.com> wrote:
> So can we have approach in aarch64 the same ARM already has? To
> simplify further support.
> I know that aarch64 is more preferable with Linux to use. But some
> customers want to have baremetal with newlib like for ARM.
>
> Alex
>
> On Tue, Sep 19, 2017 at 5:43 PM, Tamar Christina
> <Tamar.Christina@arm.com> wrote:
>> Hi Alex,
>>
>> It's not that ARM is working, in the sense it does anything useful,
>>
>> It's just that the warnings don't seem to be emitted because the conftests in libgloss/libnosys/configure.in are too simplistic,
>> for instance it tests for elf platforms by seeing if the target triple ends with "-elf".
>>
>> However, just like aarch64, using nosys gives you stubs and not actual code.
>>
>> /d/t/g/s/gcc (master ↩☡=) ../../build-arm-none-eabi/install/bin/arm-none-eabi-gcc test.c --specs=nosys.specs
>> /d/t/g/s/gcc (master ↩☡=) ../../build-arm-none-eabi/install/bin/arm-none-eabi-objdump -d a.out
>>
>> ...
>> 0000b0b4 <_lseek>:
>>     b0b4:       e3a02058        mov     r2, #88 ; 0x58
>>     b0b8:       e59f3008        ldr     r3, [pc, #8]    ; b0c8 <_lseek+0x14>
>>     b0bc:       e3e00000        mvn     r0, #0
>>     b0c0:       e5832000        str     r2, [r3]
>>     b0c4:       e12fff1e        bx      lr
>>     b0c8:       0001b9fc        .word   0x0001b9fc
>>
>> 0000b0cc <_read>:
>>     b0cc:       e3a02058        mov     r2, #88 ; 0x58
>>     b0d0:       e59f3008        ldr     r3, [pc, #8]    ; b0e0 <_read+0x14>
>>     b0d4:       e3e00000        mvn     r0, #0
>>     b0d8:       e5832000        str     r2, [r3]
>>     b0dc:       e12fff1e        bx      lr
>>     b0e0:       0001b9fc        .word   0x0001b9fc
>> ...
>>
>> They all just return -1 and set ERRNO just as expected. https://github.com/eblot/newlib/blob/master/libgloss/libnosys/read.c
>>
>> So Aarch64 is actually working as intended, it's ARM that's missing the warnings. And yeah, in order to suppress the warnings
>> you need to provide an alternate implementation.
>>
>> Tamar.
>> ________________________________________
>> From: Alexander Fedotov <alfedotov@gmail.com>
>> Sent: Tuesday, September 19, 2017 2:15 PM
>> To: Tamar Christina
>> Subject: Re: [AArch64] nosys.specs and printf
>>
>> Hello Tamar
>>
>> Well that's sounds to me like newlib completely useless for aarch64 in
>> current state.
>> So if I want to use nosys in my way I need to implement empty stubs to
>> suppress these warnings ? Right ?
>>
>> How nosys ARM port is working in such case ?
>>
>> BR,
>> Alex
>>
>>
>> On Tue, Sep 19, 2017 at 2:08 PM, Tamar Christina
>> <Tamar.Christina@arm.com> wrote:
>>> Hi Alexander,
>>>
>>> I believe your changes to libnosys are correct. We don't actually support nosys on AArch64, enough stuff has been committed for particular use cases but that's about it.
>>>
>>> The warnings you get with your libnosys changes are correct in that libnosys doesn't provide any IO functionality, so you don't have open, close, read and write. Which means your printf example won't work and it's just warning you ahead of time.
>>>
>>> Kind regards,
>>> Tamar
>>> ________________________________________
>>> From: newlib-owner@sourceware.org <newlib-owner@sourceware.org> on behalf of Alexander Fedotov <alfedotov@gmail.com>
>>> Sent: Friday, September 15, 2017 11:43:23 AM
>>> To: newlib@sourceware.org
>>> Subject: [AArch64] nosys.specs and printf
>>>
>>> Hello all
>>>
>>> I'm trying to compile following simple program for aarch64 with nosys specs
>>>
>>> #include <stdio.h>
>>> int main(void) {
>>>   printf("hello");
>>>   return 0;
>>> }
>>>
>>> But I've got:
>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-sbrkr.o):
>>> In function `_sbrk_r':
>>> sbrkr.c:(.text._sbrk_r+0x1c): undefined reference to `_sbrk'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
>>> In function `_write_r':
>>> writer.c:(.text._write_r+0x24): undefined reference to `_write'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
>>> In function `_close_r':
>>> closer.c:(.text._close_r+0x1c): undefined reference to `_close'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
>>> In function `_fstat_r':
>>> fstatr.c:(.text._fstat_r+0x20): undefined reference to `_fstat'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
>>> In function `_isatty_r':
>>> isattyr.c:(.text._isatty_r+0x1c): undefined reference to `_isatty'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
>>> In function `_lseek_r':
>>> lseekr.c:(.text._lseek_r+0x24): undefined reference to `_lseek'
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
>>> In function `_read_r':
>>> readr.c:(.text._read_r+0x24): undefined reference to `_read'
>>> collect2.exe: error: ld returned 1 exit status
>>>
>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=rdimon.specs test.c
>>>
>>> d:\gcc-6.3-arm64-eabi\bin>
>>>
>>>
>>> I tried to reconfigure libnosys  in the same way as ARM port:
>>>
>>> diff -ruN newlib-2.5.0/libgloss/libnosys/configure
>>> newlib-2.5.0/libgloss/libnosys/configure
>>> --- newlib-2.5.0/libgloss/libnosys/configure    2016-12-23
>>> 05:33:54.000000000 +0300
>>> +++ newlib-2.5.0/libgloss/libnosys/configure    2017-09-15
>>> 13:14:56.412457618 +0300
>>> @@ -2009,6 +2009,8 @@
>>>      ;;
>>>    a29k-amd-udi)
>>>      ;;
>>> +  aarch64*-*-*)
>>> +    ;;
>>>    arc-*-*)
>>>      ;;
>>>    arm*-*-*)
>>> diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
>>> newlib-2.5.0/libgloss/libnosys/configure.in
>>> --- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
>>> 05:33:54.000000000 +0300
>>> +++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-14
>>> 18:32:27.330466884 +0300
>>> @@ -43,6 +43,8 @@
>>>      ;;
>>>    a29k-amd-udi)
>>>      ;;
>>> +  aarch64*-*-*)
>>> +    ;;
>>>    arc-*-*)
>>>      ;;
>>>    arm*-*-*)
>>>
>>> It now compiles so I get final elf, but with warnings:
>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
>>> In function `_close_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/closer.c:53:
>>> warning: _close is not impl
>>> emented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
>>> In function `_fstat_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/fstatr.c:62:
>>> warning: _fstat is not impl
>>> emented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
>>> In function `_isatty_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/isattyr.c:58:
>>> warning: _isatty is not im
>>> plemented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
>>> In function `_lseek_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/lseekr.c:58:
>>> warning: _lseek is not impl
>>> emented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
>>> In function `_read_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/readr.c:58:
>>> warning: _read is not implem
>>> ented and will always fail
>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
>>> In function `_write_r':
>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/writer.c:58:
>>> warning: _write is not impl
>>> emented and will always fail
>>>
>>>
>>> Hi do I correctly to configure AArch64 nosys ?
>>
>>
>>
>> --
>> Best regards,
>> AF
>
>
>
> --
> Best regards,
> AF



--
Best regards,
AF

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

* Re: [AArch64] nosys.specs and printf
  2017-09-20 14:03           ` Tamar Christina
@ 2017-09-20 14:08             ` Alexander Fedotov
  2017-09-20 15:24               ` Jon Beniston
  0 siblings, 1 reply; 12+ messages in thread
From: Alexander Fedotov @ 2017-09-20 14:08 UTC (permalink / raw)
  To: Tamar Christina; +Cc: newlib, nd

Well at least _write is here:

af@af-ubuntu16-vm:~/aarc64-none-elf/bin$ ./aarch64-none-elf-gcc
--specs=nosys.specs test.c
af@af-ubuntu16-vm:~/aarc64-none-elf/bin$ ./aarch64-none-elf-objdump
-dS a.out | grep -A15 \(_write,
_DEFUN (_write, (file, ptr, len),
        int   file  _AND
        char *ptr   _AND
        int   len)
{
  errno = ENOSYS;
  407acc:       d0000080        adrp    x0, 419000 <object.5047+0x18>
  407ad0:       52800b01        mov     w1, #0x58                       // #88
  407ad4:       b9006801        str     w1, [x0, #104]
  return -1;
}
  407ad8:       12800000        mov     w0, #0xffffffff                 // #-1
  407adc:       d65f03c0        ret

0000000000407ae0 <_exit>:
#include <_syslist.h>



And it is worked before (when warning been appeared on link stage) -
main called for printf() and of course nothing were printed out. But
further execution didn't fails.

On Wed, Sep 20, 2017 at 4:40 PM, Tamar Christina
<Tamar.Christina@arm.com> wrote:
> Hi Alex,
>
> I don't believe we want to suppress the warnings, the fact that arm currently does seems
> to me to be a bug rather than a feature. The warnings are there to tell you your application
> will not work if you call any of those functions.
>
> Did you try running the example you're compiling? I'd be surprised if it worked.
>
> Regards,
> Tamar
> ________________________________________
> From: Alexander Fedotov <alfedotov@gmail.com>
> Sent: Wednesday, September 20, 2017 2:19 PM
> To: Tamar Christina
> Cc: newlib@sourceware.org; nd
> Subject: Re: [AArch64] nosys.specs and printf
>
> Hi Tamar
>
> I've managed to suppress this message for nosys and it looks beter to
> me. How do you think about upstream this ?
>
> diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
> newlib-2.5.0/libgloss/libnosys/configure.in
> --- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
> 05:33:54.000000000 +0300
> +++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-20
> 16:15:31.346520052 +0300
> @@ -43,6 +43,8 @@
>      ;;
>    a29k-amd-udi)
>      ;;
> +  aarch64*-*-*)
> +    ;;
>    arc-*-*)
>      ;;
>    arm*-*-*)
> @@ -88,6 +90,9 @@
>
>  dnl Make sure we know if elf format used
>  case "${target}" in
> +  aarch64*-*-*)
> +    #suppress "warning: _close etc is not implemented and will always fail"
> +    ;;
>    *-*-elf)
>          AC_DEFINE(HAVE_ELF)
>
> Alex
>
> On Wed, Sep 20, 2017 at 10:31 AM, Alexander Fedotov <alfedotov@gmail.com> wrote:
>> So can we have approach in aarch64 the same ARM already has? To
>> simplify further support.
>> I know that aarch64 is more preferable with Linux to use. But some
>> customers want to have baremetal with newlib like for ARM.
>>
>> Alex
>>
>> On Tue, Sep 19, 2017 at 5:43 PM, Tamar Christina
>> <Tamar.Christina@arm.com> wrote:
>>> Hi Alex,
>>>
>>> It's not that ARM is working, in the sense it does anything useful,
>>>
>>> It's just that the warnings don't seem to be emitted because the conftests in libgloss/libnosys/configure.in are too simplistic,
>>> for instance it tests for elf platforms by seeing if the target triple ends with "-elf".
>>>
>>> However, just like aarch64, using nosys gives you stubs and not actual code.
>>>
>>> /d/t/g/s/gcc (master ↩☡=) ../../build-arm-none-eabi/install/bin/arm-none-eabi-gcc test.c --specs=nosys.specs
>>> /d/t/g/s/gcc (master ↩☡=) ../../build-arm-none-eabi/install/bin/arm-none-eabi-objdump -d a.out
>>>
>>> ...
>>> 0000b0b4 <_lseek>:
>>>     b0b4:       e3a02058        mov     r2, #88 ; 0x58
>>>     b0b8:       e59f3008        ldr     r3, [pc, #8]    ; b0c8 <_lseek+0x14>
>>>     b0bc:       e3e00000        mvn     r0, #0
>>>     b0c0:       e5832000        str     r2, [r3]
>>>     b0c4:       e12fff1e        bx      lr
>>>     b0c8:       0001b9fc        .word   0x0001b9fc
>>>
>>> 0000b0cc <_read>:
>>>     b0cc:       e3a02058        mov     r2, #88 ; 0x58
>>>     b0d0:       e59f3008        ldr     r3, [pc, #8]    ; b0e0 <_read+0x14>
>>>     b0d4:       e3e00000        mvn     r0, #0
>>>     b0d8:       e5832000        str     r2, [r3]
>>>     b0dc:       e12fff1e        bx      lr
>>>     b0e0:       0001b9fc        .word   0x0001b9fc
>>> ...
>>>
>>> They all just return -1 and set ERRNO just as expected. https://github.com/eblot/newlib/blob/master/libgloss/libnosys/read.c
>>>
>>> So Aarch64 is actually working as intended, it's ARM that's missing the warnings. And yeah, in order to suppress the warnings
>>> you need to provide an alternate implementation.
>>>
>>> Tamar.
>>> ________________________________________
>>> From: Alexander Fedotov <alfedotov@gmail.com>
>>> Sent: Tuesday, September 19, 2017 2:15 PM
>>> To: Tamar Christina
>>> Subject: Re: [AArch64] nosys.specs and printf
>>>
>>> Hello Tamar
>>>
>>> Well that's sounds to me like newlib completely useless for aarch64 in
>>> current state.
>>> So if I want to use nosys in my way I need to implement empty stubs to
>>> suppress these warnings ? Right ?
>>>
>>> How nosys ARM port is working in such case ?
>>>
>>> BR,
>>> Alex
>>>
>>>
>>> On Tue, Sep 19, 2017 at 2:08 PM, Tamar Christina
>>> <Tamar.Christina@arm.com> wrote:
>>>> Hi Alexander,
>>>>
>>>> I believe your changes to libnosys are correct. We don't actually support nosys on AArch64, enough stuff has been committed for particular use cases but that's about it.
>>>>
>>>> The warnings you get with your libnosys changes are correct in that libnosys doesn't provide any IO functionality, so you don't have open, close, read and write. Which means your printf example won't work and it's just warning you ahead of time.
>>>>
>>>> Kind regards,
>>>> Tamar
>>>> ________________________________________
>>>> From: newlib-owner@sourceware.org <newlib-owner@sourceware.org> on behalf of Alexander Fedotov <alfedotov@gmail.com>
>>>> Sent: Friday, September 15, 2017 11:43:23 AM
>>>> To: newlib@sourceware.org
>>>> Subject: [AArch64] nosys.specs and printf
>>>>
>>>> Hello all
>>>>
>>>> I'm trying to compile following simple program for aarch64 with nosys specs
>>>>
>>>> #include <stdio.h>
>>>> int main(void) {
>>>>   printf("hello");
>>>>   return 0;
>>>> }
>>>>
>>>> But I've got:
>>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-sbrkr.o):
>>>> In function `_sbrk_r':
>>>> sbrkr.c:(.text._sbrk_r+0x1c): undefined reference to `_sbrk'
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
>>>> In function `_write_r':
>>>> writer.c:(.text._write_r+0x24): undefined reference to `_write'
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
>>>> In function `_close_r':
>>>> closer.c:(.text._close_r+0x1c): undefined reference to `_close'
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
>>>> In function `_fstat_r':
>>>> fstatr.c:(.text._fstat_r+0x20): undefined reference to `_fstat'
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
>>>> In function `_isatty_r':
>>>> isattyr.c:(.text._isatty_r+0x1c): undefined reference to `_isatty'
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
>>>> In function `_lseek_r':
>>>> lseekr.c:(.text._lseek_r+0x24): undefined reference to `_lseek'
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
>>>> In function `_read_r':
>>>> readr.c:(.text._read_r+0x24): undefined reference to `_read'
>>>> collect2.exe: error: ld returned 1 exit status
>>>>
>>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=rdimon.specs test.c
>>>>
>>>> d:\gcc-6.3-arm64-eabi\bin>
>>>>
>>>>
>>>> I tried to reconfigure libnosys  in the same way as ARM port:
>>>>
>>>> diff -ruN newlib-2.5.0/libgloss/libnosys/configure
>>>> newlib-2.5.0/libgloss/libnosys/configure
>>>> --- newlib-2.5.0/libgloss/libnosys/configure    2016-12-23
>>>> 05:33:54.000000000 +0300
>>>> +++ newlib-2.5.0/libgloss/libnosys/configure    2017-09-15
>>>> 13:14:56.412457618 +0300
>>>> @@ -2009,6 +2009,8 @@
>>>>      ;;
>>>>    a29k-amd-udi)
>>>>      ;;
>>>> +  aarch64*-*-*)
>>>> +    ;;
>>>>    arc-*-*)
>>>>      ;;
>>>>    arm*-*-*)
>>>> diff -ruN newlib-2.5.0/libgloss/libnosys/configure.in
>>>> newlib-2.5.0/libgloss/libnosys/configure.in
>>>> --- newlib-2.5.0/libgloss/libnosys/configure.in    2016-12-23
>>>> 05:33:54.000000000 +0300
>>>> +++ newlib-2.5.0/libgloss/libnosys/configure.in    2017-09-14
>>>> 18:32:27.330466884 +0300
>>>> @@ -43,6 +43,8 @@
>>>>      ;;
>>>>    a29k-amd-udi)
>>>>      ;;
>>>> +  aarch64*-*-*)
>>>> +    ;;
>>>>    arc-*-*)
>>>>      ;;
>>>>    arm*-*-*)
>>>>
>>>> It now compiles so I get final elf, but with warnings:
>>>> d:\gcc-6.3-arm64-eabi\bin>aarch64-none-elf-gcc --specs=nosys.specs test.c
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-closer.o):
>>>> In function `_close_r':
>>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/closer.c:53:
>>>> warning: _close is not impl
>>>> emented and will always fail
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-fstatr.o):
>>>> In function `_fstat_r':
>>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/fstatr.c:62:
>>>> warning: _fstat is not impl
>>>> emented and will always fail
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-isattyr.o):
>>>> In function `_isatty_r':
>>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/isattyr.c:58:
>>>> warning: _isatty is not im
>>>> plemented and will always fail
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-lseekr.o):
>>>> In function `_lseek_r':
>>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/lseekr.c:58:
>>>> warning: _lseek is not impl
>>>> emented and will always fail
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-readr.o):
>>>> In function `_read_r':
>>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/readr.c:58:
>>>> warning: _read is not implem
>>>> ented and will always fail
>>>> d:/gcc-6.3-arm64-eabi/bin/../lib/gcc/aarch64-none-elf/6.3.1/../../../../aarch64-none-elf/lib\libc.a(lib_a-writer.o):
>>>> In function `_write_r':
>>>> /home/af/GIT/BG/build_gnu/opt/freescale/Earmv8/obj_newlib/aarch64-none-elf/newlib/libc/reent/../../../../../src_newlib/newlib/libc/reent/writer.c:58:
>>>> warning: _write is not impl
>>>> emented and will always fail
>>>>
>>>>
>>>> Hi do I correctly to configure AArch64 nosys ?
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> AF
>>
>>
>>
>> --
>> Best regards,
>> AF
>
>
>
> --
> Best regards,
> AF



-- 
Best regards,
AF

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

* RE: [AArch64] nosys.specs and printf
  2017-09-20 14:08             ` Alexander Fedotov
@ 2017-09-20 15:24               ` Jon Beniston
  2017-09-22  8:06                 ` Alexander Fedotov
  0 siblings, 1 reply; 12+ messages in thread
From: Jon Beniston @ 2017-09-20 15:24 UTC (permalink / raw)
  To: 'Alexander Fedotov', 'Tamar Christina'
  Cc: newlib, 'nd'

> Well at least _write is here:

That's not doing anything other than setting errno to ENOSYS to indicate it's not available.


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

* Re: [AArch64] nosys.specs and printf
  2017-09-20 15:24               ` Jon Beniston
@ 2017-09-22  8:06                 ` Alexander Fedotov
  2017-09-22  9:50                   ` Tamar Christina
  0 siblings, 1 reply; 12+ messages in thread
From: Alexander Fedotov @ 2017-09-22  8:06 UTC (permalink / raw)
  To: Jon Beniston; +Cc: Tamar Christina, newlib, nd

>>That's not doing anything other than setting errno to ENOSYS to indicate it's not available.
Yes the same as ARM.

So to sum up. We have several points:
1. ARM port doesn't warn user about missing _write(). While this
function is present in final ELF and does nothing.
2. AArch64 warns "warning: _write() is not implemented and will always
fail" while _write() it is present in ELF.
3. libnosys has inconsistent configuration against rdimon. It is
impossible to switch between rdimon.specs and nosys.specs.

Thoughts ?

Alex

On Wed, Sep 20, 2017 at 5:08 PM, Jon Beniston <jon@beniston.com> wrote:
>> Well at least _write is here:
>
> That's not doing anything other than setting errno to ENOSYS to indicate it's not available.
>
>



-- 
Best regards,
AF

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

* RE: [AArch64] nosys.specs and printf
  2017-09-22  8:06                 ` Alexander Fedotov
@ 2017-09-22  9:50                   ` Tamar Christina
  2017-10-02 10:01                     ` Alexander Fedotov
  0 siblings, 1 reply; 12+ messages in thread
From: Tamar Christina @ 2017-09-22  9:50 UTC (permalink / raw)
  To: Alexander Fedotov, Jon Beniston; +Cc: newlib, nd



> -----Original Message-----
> From: Alexander Fedotov [mailto:alfedotov@gmail.com]
> Sent: 20 September 2017 16:24
> To: Jon Beniston
> Cc: Tamar Christina; newlib@sourceware.org; nd
> Subject: Re: [AArch64] nosys.specs and printf
> 
> >>That's not doing anything other than setting errno to ENOSYS to indicate
> it's not available.
> Yes the same as ARM.
> 
> So to sum up. We have several points:
> 1. ARM port doesn't warn user about missing _write(). While this function is
> present in final ELF and does nothing.
> 2. AArch64 warns "warning: _write() is not implemented and will always fail"
> while _write() it is present in ELF.

Both of these are probably correct, while I consider the ARM behaviour to be the incorrect one
It may be so for historical reasons. I'm not really sure.

> 3. libnosys has inconsistent configuration against rdimon. It is impossible to
> switch between rdimon.specs and nosys.specs.

I don't quite get what you mean with this, but I assume you mean that using nosys.specs with AArch64
Results in link errors if you use I/O. Again this is because we don't support nosys for AArch64.

That said, a patch to have libnosys compile (with warnings) for AArch64 would be fine.

Tamar.
> 
> Thoughts ?
> 
> Alex
> 
> On Wed, Sep 20, 2017 at 5:08 PM, Jon Beniston <jon@beniston.com> wrote:
> >> Well at least _write is here:
> >
> > That's not doing anything other than setting errno to ENOSYS to indicate it's
> not available.
> >
> >
> 
> 
> 
> --
> Best regards,
> AF

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

* Re: [AArch64] nosys.specs and printf
  2017-09-22  9:50                   ` Tamar Christina
@ 2017-10-02 10:01                     ` Alexander Fedotov
  2017-10-05 12:56                       ` Tamar Christina
  2017-10-09 16:10                       ` Corinna Vinschen
  0 siblings, 2 replies; 12+ messages in thread
From: Alexander Fedotov @ 2017-10-02 10:01 UTC (permalink / raw)
  To: Tamar Christina; +Cc: newlib, nd

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

Here is a patch to correct libnosys configuration for aarch64.
Linker warning still be emitted as agreed.

Alex

On Fri, Sep 22, 2017 at 11:05 AM, Tamar Christina
<Tamar.Christina@arm.com> wrote:
>
>
>> -----Original Message-----
>> From: Alexander Fedotov [mailto:alfedotov@gmail.com]
>> Sent: 20 September 2017 16:24
>> To: Jon Beniston
>> Cc: Tamar Christina; newlib@sourceware.org; nd
>> Subject: Re: [AArch64] nosys.specs and printf
>>
>> >>That's not doing anything other than setting errno to ENOSYS to indicate
>> it's not available.
>> Yes the same as ARM.
>>
>> So to sum up. We have several points:
>> 1. ARM port doesn't warn user about missing _write(). While this function is
>> present in final ELF and does nothing.
>> 2. AArch64 warns "warning: _write() is not implemented and will always fail"
>> while _write() it is present in ELF.
>
> Both of these are probably correct, while I consider the ARM behaviour to be the incorrect one
> It may be so for historical reasons. I'm not really sure.
>
>> 3. libnosys has inconsistent configuration against rdimon. It is impossible to
>> switch between rdimon.specs and nosys.specs.
>
> I don't quite get what you mean with this, but I assume you mean that using nosys.specs with AArch64
> Results in link errors if you use I/O. Again this is because we don't support nosys for AArch64.
>
> That said, a patch to have libnosys compile (with warnings) for AArch64 would be fine.
>
> Tamar.
>>
>> Thoughts ?
>>
>> Alex
>>
>> On Wed, Sep 20, 2017 at 5:08 PM, Jon Beniston <jon@beniston.com> wrote:
>> >> Well at least _write is here:
>> >
>> > That's not doing anything other than setting errno to ENOSYS to indicate it's
>> not available.
>> >
>> >
>>
>>
>>
>> --
>> Best regards,
>> AF



-- 
Best regards,
AF

[-- Attachment #2: 0001-adjust-libnosys-config-for-aarch64-to-avoid-linker-e.patch --]
[-- Type: text/x-patch, Size: 995 bytes --]

From 53a46d49cedd80386ad527891b8324cafaeaea2f Mon Sep 17 00:00:00 2001
From: Alexander Fedotov <alfedotov@gmail.com>
Date: Fri, 29 Sep 2017 22:10:47 +0300
Subject: [PATCH] adjust libnosys config for aarch64 to avoid linker error when
 switching from rdimon.specs to nosys.specs

---
 libgloss/libnosys/configure    | 2 ++
 libgloss/libnosys/configure.in | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/libgloss/libnosys/configure b/libgloss/libnosys/configure
index fbe7db7..046dca5 100755
--- a/libgloss/libnosys/configure
+++ b/libgloss/libnosys/configure
@@ -2009,6 +2009,8 @@ case "${target}" in
 	;;
   a29k-amd-udi)
 	;;
+  aarch64*-*-*)
+	;;
   arc-*-*)
 	;;
   arm*-*-*)
diff --git a/libgloss/libnosys/configure.in b/libgloss/libnosys/configure.in
index 1d4846b..d3d8c89 100644
--- a/libgloss/libnosys/configure.in
+++ b/libgloss/libnosys/configure.in
@@ -43,6 +43,8 @@ case "${target}" in
 	;;
   a29k-amd-udi)
 	;;
+  aarch64*-*-*)
+	;;
   arc-*-*)
 	;;
   arm*-*-*)
-- 
2.7.4


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

* RE: [AArch64] nosys.specs and printf
  2017-10-02 10:01                     ` Alexander Fedotov
@ 2017-10-05 12:56                       ` Tamar Christina
  2017-10-06 15:44                         ` Alexander Fedotov
  2017-10-09 16:10                       ` Corinna Vinschen
  1 sibling, 1 reply; 12+ messages in thread
From: Tamar Christina @ 2017-10-05 12:56 UTC (permalink / raw)
  To: Alexander Fedotov; +Cc: newlib, nd

Hi Alex,

Thanks, looks good to me,
but I can't approve for newlib, so a maintainer will have to take a look.

Regards,
Tamar

> -----Original Message-----
> From: Alexander Fedotov [mailto:alfedotov@gmail.com]
> Sent: 29 September 2017 20:16
> To: Tamar Christina
> Cc: newlib@sourceware.org; nd
> Subject: Re: [AArch64] nosys.specs and printf
> 
> Here is a patch to correct libnosys configuration for aarch64.
> Linker warning still be emitted as agreed.
> 
> Alex
> 
> On Fri, Sep 22, 2017 at 11:05 AM, Tamar Christina
> <Tamar.Christina@arm.com> wrote:
> >
> >
> >> -----Original Message-----
> >> From: Alexander Fedotov [mailto:alfedotov@gmail.com]
> >> Sent: 20 September 2017 16:24
> >> To: Jon Beniston
> >> Cc: Tamar Christina; newlib@sourceware.org; nd
> >> Subject: Re: [AArch64] nosys.specs and printf
> >>
> >> >>That's not doing anything other than setting errno to ENOSYS to
> >> >>indicate
> >> it's not available.
> >> Yes the same as ARM.
> >>
> >> So to sum up. We have several points:
> >> 1. ARM port doesn't warn user about missing _write(). While this
> >> function is present in final ELF and does nothing.
> >> 2. AArch64 warns "warning: _write() is not implemented and will always
> fail"
> >> while _write() it is present in ELF.
> >
> > Both of these are probably correct, while I consider the ARM behaviour
> > to be the incorrect one It may be so for historical reasons. I'm not really
> sure.
> >
> >> 3. libnosys has inconsistent configuration against rdimon. It is
> >> impossible to switch between rdimon.specs and nosys.specs.
> >
> > I don't quite get what you mean with this, but I assume you mean that
> > using nosys.specs with AArch64 Results in link errors if you use I/O. Again
> this is because we don't support nosys for AArch64.
> >
> > That said, a patch to have libnosys compile (with warnings) for AArch64
> would be fine.
> >
> > Tamar.
> >>
> >> Thoughts ?
> >>
> >> Alex
> >>
> >> On Wed, Sep 20, 2017 at 5:08 PM, Jon Beniston <jon@beniston.com>
> wrote:
> >> >> Well at least _write is here:
> >> >
> >> > That's not doing anything other than setting errno to ENOSYS to
> >> > indicate it's
> >> not available.
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> AF
> 
> 
> 
> --
> Best regards,
> AF

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

* Re: [AArch64] nosys.specs and printf
  2017-10-05 12:56                       ` Tamar Christina
@ 2017-10-06 15:44                         ` Alexander Fedotov
  0 siblings, 0 replies; 12+ messages in thread
From: Alexander Fedotov @ 2017-10-06 15:44 UTC (permalink / raw)
  To: Tamar Christina; +Cc: newlib, nd

ping

On Mon, Oct 2, 2017 at 1:01 PM, Tamar Christina <Tamar.Christina@arm.com> wrote:
> Hi Alex,
>
> Thanks, looks good to me,
> but I can't approve for newlib, so a maintainer will have to take a look.
>
> Regards,
> Tamar
>
>> -----Original Message-----
>> From: Alexander Fedotov [mailto:alfedotov@gmail.com]
>> Sent: 29 September 2017 20:16
>> To: Tamar Christina
>> Cc: newlib@sourceware.org; nd
>> Subject: Re: [AArch64] nosys.specs and printf
>>
>> Here is a patch to correct libnosys configuration for aarch64.
>> Linker warning still be emitted as agreed.
>>
>> Alex
>>
>> On Fri, Sep 22, 2017 at 11:05 AM, Tamar Christina
>> <Tamar.Christina@arm.com> wrote:
>> >
>> >
>> >> -----Original Message-----
>> >> From: Alexander Fedotov [mailto:alfedotov@gmail.com]
>> >> Sent: 20 September 2017 16:24
>> >> To: Jon Beniston
>> >> Cc: Tamar Christina; newlib@sourceware.org; nd
>> >> Subject: Re: [AArch64] nosys.specs and printf
>> >>
>> >> >>That's not doing anything other than setting errno to ENOSYS to
>> >> >>indicate
>> >> it's not available.
>> >> Yes the same as ARM.
>> >>
>> >> So to sum up. We have several points:
>> >> 1. ARM port doesn't warn user about missing _write(). While this
>> >> function is present in final ELF and does nothing.
>> >> 2. AArch64 warns "warning: _write() is not implemented and will always
>> fail"
>> >> while _write() it is present in ELF.
>> >
>> > Both of these are probably correct, while I consider the ARM behaviour
>> > to be the incorrect one It may be so for historical reasons. I'm not really
>> sure.
>> >
>> >> 3. libnosys has inconsistent configuration against rdimon. It is
>> >> impossible to switch between rdimon.specs and nosys.specs.
>> >
>> > I don't quite get what you mean with this, but I assume you mean that
>> > using nosys.specs with AArch64 Results in link errors if you use I/O. Again
>> this is because we don't support nosys for AArch64.
>> >
>> > That said, a patch to have libnosys compile (with warnings) for AArch64
>> would be fine.
>> >
>> > Tamar.
>> >>
>> >> Thoughts ?
>> >>
>> >> Alex
>> >>
>> >> On Wed, Sep 20, 2017 at 5:08 PM, Jon Beniston <jon@beniston.com>
>> wrote:
>> >> >> Well at least _write is here:
>> >> >
>> >> > That's not doing anything other than setting errno to ENOSYS to
>> >> > indicate it's
>> >> not available.
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Best regards,
>> >> AF
>>
>>
>>
>> --
>> Best regards,
>> AF



-- 
Best regards,
AF

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

* Re: [AArch64] nosys.specs and printf
  2017-10-02 10:01                     ` Alexander Fedotov
  2017-10-05 12:56                       ` Tamar Christina
@ 2017-10-09 16:10                       ` Corinna Vinschen
  1 sibling, 0 replies; 12+ messages in thread
From: Corinna Vinschen @ 2017-10-09 16:10 UTC (permalink / raw)
  To: newlib

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

On Sep 29 22:15, Alexander Fedotov wrote:
> Here is a patch to correct libnosys configuration for aarch64.
> Linker warning still be emitted as agreed.
> 
> Alex
> [...]
> From 53a46d49cedd80386ad527891b8324cafaeaea2f Mon Sep 17 00:00:00 2001
> From: Alexander Fedotov <alfedotov@gmail.com>
> Date: Fri, 29 Sep 2017 22:10:47 +0300
> Subject: [PATCH] adjust libnosys config for aarch64 to avoid linker error when
>  switching from rdimon.specs to nosys.specs
> 
> ---
>  libgloss/libnosys/configure    | 2 ++
>  libgloss/libnosys/configure.in | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/libgloss/libnosys/configure b/libgloss/libnosys/configure
> index fbe7db7..046dca5 100755
> --- a/libgloss/libnosys/configure
> +++ b/libgloss/libnosys/configure
> @@ -2009,6 +2009,8 @@ case "${target}" in
>  	;;
>    a29k-amd-udi)
>  	;;
> +  aarch64*-*-*)
> +	;;
>    arc-*-*)
>  	;;
>    arm*-*-*)
> diff --git a/libgloss/libnosys/configure.in b/libgloss/libnosys/configure.in
> index 1d4846b..d3d8c89 100644
> --- a/libgloss/libnosys/configure.in
> +++ b/libgloss/libnosys/configure.in
> @@ -43,6 +43,8 @@ case "${target}" in
>  	;;
>    a29k-amd-udi)
>  	;;
> +  aarch64*-*-*)
> +	;;
>    arc-*-*)
>  	;;
>    arm*-*-*)
> -- 
> 2.7.4

Pushed.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

end of thread, other threads:[~2017-10-09 15:54 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-19  6:21 [AArch64] nosys.specs and printf Alexander Fedotov
2017-09-19 17:43 ` Tamar Christina
     [not found]   ` <CAN8C2Crygk-MsBz-=x5qa0pJ-2SvOQoOwdqcJztxppdTskEkdg@mail.gmail.com>
     [not found]     ` <DB6PR0802MB23090588EC607014E69E9B1AFF600@DB6PR0802MB2309.eurprd08.prod.outlook.com>
     [not found]       ` <CAN8C2CoX3aHHe2WixnQM1eHzigdLgb4A44v=BQj2Cs60tmmUHw@mail.gmail.com>
2017-09-20 13:40         ` Alexander Fedotov
2017-09-20 14:03           ` Tamar Christina
2017-09-20 14:08             ` Alexander Fedotov
2017-09-20 15:24               ` Jon Beniston
2017-09-22  8:06                 ` Alexander Fedotov
2017-09-22  9:50                   ` Tamar Christina
2017-10-02 10:01                     ` Alexander Fedotov
2017-10-05 12:56                       ` Tamar Christina
2017-10-06 15:44                         ` Alexander Fedotov
2017-10-09 16:10                       ` Corinna Vinschen

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).