public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v1 2/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commits 8d98f95, 5c9403e
  2019-08-01 10:13 [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Alexander Fedotov
  2019-08-01 10:13 ` [PATCH v1 4/4] Alignment libgloss/arm and newlib/libc/sys/arm: minor fixes, alignments and cleanup Alexander Fedotov
@ 2019-08-01 10:13 ` Alexander Fedotov
  2019-08-01 10:13 ` [PATCH v1 3/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 2404223 Alexander Fedotov
  2019-08-01 10:55 ` [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Corinna Vinschen
  3 siblings, 0 replies; 6+ messages in thread
From: Alexander Fedotov @ 2019-08-01 10:13 UTC (permalink / raw)
  To: newlib, Richard.Earnshaw; +Cc: Alexander Fedotov

---
 libgloss/arm/syscalls.c        | 12 ++++++------
 newlib/libc/sys/arm/crt0.S     |  7 +++++++
 newlib/libc/sys/arm/syscalls.c |  9 +++++++--
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c
index dacd1a9d3..3605e0fd0 100644
--- a/libgloss/arm/syscalls.c
+++ b/libgloss/arm/syscalls.c
@@ -707,15 +707,15 @@ uint __heap_limit = 0xcafedead;
 void * __attribute__((weak))
 _sbrk (ptrdiff_t incr)
 {
-  extern char end asm ("end"); /* Defined by the linker.  */
+  extern char   end asm ("end"); /* Defined by the linker.  */
   static char * heap_end;
-  char * prev_heap_end;
+  char *        prev_heap_end;
 
   if (heap_end == NULL)
     heap_end = & end;
-  
+
   prev_heap_end = heap_end;
-  
+
   if ((heap_end + incr > stack_ptr)
       /* Honour heap limit if it's valid.  */
       || (__heap_limit != 0xcafedead && heap_end + incr > (char *)__heap_limit))
@@ -726,14 +726,14 @@ _sbrk (ptrdiff_t incr)
       extern void abort (void);
 
       _write (1, "_sbrk: Heap and stack collision\n", 32);
-      
+
       abort ();
 #else
       errno = ENOMEM;
       return (void *) -1;
 #endif
     }
-  
+
   heap_end += incr;
 
   return (void *) prev_heap_end;
diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S
index 40bbc3d69..a55aa365b 100644
--- a/newlib/libc/sys/arm/crt0.S
+++ b/newlib/libc/sys/arm/crt0.S
@@ -282,6 +282,13 @@
 #endif
 	ldr	r0, .LC0	/*  Point at values read.  */
 
+	/* Set __heap_limit.  */
+	ldr     r1, [r0, #4]
+	cmp     r1, #0
+	beq     .LC33
+	ldr     r2, =__heap_limit
+	str     r1, [r2]
+.LC33:
 	ldr     r1, [r0, #0]
 	cmp     r1, #0
 	bne     .LC32
diff --git a/newlib/libc/sys/arm/syscalls.c b/newlib/libc/sys/arm/syscalls.c
index b52107491..a2997b44c 100644
--- a/newlib/libc/sys/arm/syscalls.c
+++ b/newlib/libc/sys/arm/syscalls.c
@@ -487,10 +487,13 @@ _getpid (void)
   return (pid_t)1;
 }
 
+/* Heap limit returned from SYS_HEAPINFO Angel semihost call.  */
+uint __heap_limit = 0xcafedead;
+
 void * __attribute__((weak))
 _sbrk (ptrdiff_t incr)
 {
-  extern char   end asm ("end");	/* Defined by the linker.  */
+  extern char   end asm ("end"); /* Defined by the linker.  */
   static char * heap_end;
   char *        prev_heap_end;
 
@@ -499,7 +502,9 @@ _sbrk (ptrdiff_t incr)
 
   prev_heap_end = heap_end;
 
-  if (heap_end + incr > stack_ptr)
+  if ((heap_end + incr > stack_ptr)
+      /* Honour heap limit if it's valid.  */
+      || (__heap_limit != 0xcafedead && heap_end + incr > (char *)__heap_limit))
     {
       /* Some of the libstdc++-v3 tests rely upon detecting
 	 out of memory errors, so do not abort here.  */
-- 
2.17.1

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

* [PATCH v1 3/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 2404223
  2019-08-01 10:13 [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Alexander Fedotov
  2019-08-01 10:13 ` [PATCH v1 4/4] Alignment libgloss/arm and newlib/libc/sys/arm: minor fixes, alignments and cleanup Alexander Fedotov
  2019-08-01 10:13 ` [PATCH v1 2/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commits 8d98f95, 5c9403e Alexander Fedotov
@ 2019-08-01 10:13 ` Alexander Fedotov
  2019-08-01 10:55 ` [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Corinna Vinschen
  3 siblings, 0 replies; 6+ messages in thread
From: Alexander Fedotov @ 2019-08-01 10:13 UTC (permalink / raw)
  To: newlib, Richard.Earnshaw; +Cc: Alexander Fedotov

---
 newlib/libc/sys/arm/crt0.S | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S
index a55aa365b..5e677a23c 100644
--- a/newlib/libc/sys/arm/crt0.S
+++ b/newlib/libc/sys/arm/crt0.S
@@ -518,8 +518,17 @@ __change_mode:
 	   for _fini to be called at program exit.  */
 	movs	r4, r0
 	movs	r5, r1
+#ifdef _LITE_EXIT
+	/* Make reference to atexit weak to avoid unconditionally pulling in
+	   support code.  Refer to comments in __atexit.c for more details.  */
+	.weak	FUNCTION(atexit)
+	ldr	r0, .Latexit
+	cmp	r0, #0
+	beq	.Lweak_atexit
+#endif
 	ldr	r0, .Lfini
 	bl	FUNCTION (atexit)
+.Lweak_atexit:
 	bl	FUNCTION (_init)
 	movs	r0, r4
 	movs	r1, r5
@@ -589,6 +598,13 @@ change_back:
 .LC2:
 	.word	__bss_end__
 #ifdef __USES_INITFINI__
+#ifdef _LITE_EXIT
+.Latexit:
+	.word	FUNCTION(atexit)
+
+	/* Weak reference _fini in case of lite exit.  */
+	.weak	FUNCTION(_fini)
+#endif
 .Lfini:
 	.word	FUNCTION(_fini)
 #endif
-- 
2.17.1

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

* [PATCH v1 4/4] Alignment libgloss/arm and newlib/libc/sys/arm: minor fixes, alignments and cleanup
  2019-08-01 10:13 [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Alexander Fedotov
@ 2019-08-01 10:13 ` Alexander Fedotov
  2019-08-01 10:13 ` [PATCH v1 2/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commits 8d98f95, 5c9403e Alexander Fedotov
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Alexander Fedotov @ 2019-08-01 10:13 UTC (permalink / raw)
  To: newlib, Richard.Earnshaw; +Cc: Alexander Fedotov

---
 libgloss/arm/crt0.S            |   2 +-
 libgloss/arm/syscalls.c        | 106 ++++++++++++++-------------------
 newlib/libc/sys/arm/arm.h      |   2 +-
 newlib/libc/sys/arm/syscalls.c |  50 +++++++++++-----
 4 files changed, 82 insertions(+), 78 deletions(-)

diff --git a/libgloss/arm/crt0.S b/libgloss/arm/crt0.S
index 3e740c654..8490bde2f 100644
--- a/libgloss/arm/crt0.S
+++ b/libgloss/arm/crt0.S
@@ -440,7 +440,7 @@ __change_mode:
 	beq	.LC10
 
 /* See whether we are scanning a string.  */
-	cmp	r3, #'"'
+	cmp	r3, #'\"'
 #ifdef __thumb__
 	beq	.LC20
 	cmp	r3, #'\''
diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c
index 3605e0fd0..fc394f94b 100644
--- a/libgloss/arm/syscalls.c
+++ b/libgloss/arm/syscalls.c
@@ -18,30 +18,30 @@
 #include "swi.h"
 
 /* Forward prototypes.  */
-int     _system     (const char *);
-int     _rename     (const char *, const char *);
-int     _isatty		(int);
+int	_system		(const char *);
+int	_rename		(const char *, const char *);
+int	_isatty		(int);
 clock_t _times		(struct tms *);
-int     _gettimeofday	(struct timeval *, void *);
-int     _unlink		(const char *);
-int     _link 		(const char *, const char *);
-int     _stat 		(const char *, struct stat *);
-int     _fstat 		(int, struct stat *);
+int	_gettimeofday	(struct timeval *, void *);
+int	_unlink		(const char *);
+int	_link		(const char *, const char *);
+int	_stat		(const char *, struct stat *);
+int	_fstat		(int, struct stat *);
 int	_swistat	(int fd, struct stat * st);
-void *  _sbrk		(ptrdiff_t);
-pid_t   _getpid	        (void);
-int     _close		(int);
-clock_t _clock		(void);
-int     _swiclose	(int);
-int     _open		(const char *, int, ...);
-int     _swiopen	(const char *, int);
-int     _write 		(int, const void *, size_t);
-int     _swiwrite	(int, const void *, size_t);
-_off_t  _lseek		(int, _off_t, int);
-_off_t  _swilseek	(int, _off_t, int);
-int     _read		(int, void *, size_t);
-int     _swiread	(int, void *, size_t);
-void    initialise_monitor_handles (void);
+void *	_sbrk		(ptrdiff_t);
+pid_t	_getpid		(void);
+int	_close		(int);
+clock_t	_clock		(void);
+int	_swiclose	(int);
+int	_open		(const char *, int, ...);
+int	_swiopen	(const char *, int);
+int	_write		(int, const void *, size_t);
+int	_swiwrite	(int, const void *, size_t);
+_off_t	_lseek		(int, _off_t, int);
+_off_t	_swilseek	(int, _off_t, int);
+int	_read		(int, void *, size_t);
+int	_swiread	(int, void *, size_t);
+void	initialise_monitor_handles (void);
 
 static int	checkerror	(int);
 static int	error		(int);
@@ -143,7 +143,7 @@ initialise_monitor_handles (void)
   int i;
   
   /* Open the standard file descriptors by opening the special
-   * teletype device, ":tt", read-only to obtain a descritpor for
+   * teletype device, ":tt", read-only to obtain a descriptor for
    * standard input and write-only to obtain a descriptor for standard
    * output. Finally, open ":tt" in append mode to obtain a descriptor
    * for standard error. Since this is a write mode, most kernels will
@@ -154,7 +154,7 @@ initialise_monitor_handles (void)
 
 #ifdef ARM_RDI_MONITOR
   int volatile block[3];
-  
+
   block[0] = (int) ":tt";
   block[2] = 3;     /* length of filename */
   block[1] = 0;     /* mode "r" */
@@ -351,17 +351,15 @@ checkerror (int result)
    len, is the length in bytes to read. 
    Returns the number of bytes *not* written. */
 int
-_swiread (int fh,
-	  void * ptr,
-	  size_t len)
+_swiread (int fh, void * ptr, size_t len)
 {
 #ifdef ARM_RDI_MONITOR
   int block[3];
-  
+
   block[0] = fh;
   block[1] = (int) ptr;
   block[2] = (int) len;
-  
+
   return checkerror (do_AngelSWI (AngelSWI_Reason_Read, block));
 #else
   register int r0 asm("r0");
@@ -381,9 +379,7 @@ _swiread (int fh,
    Translates the return of _swiread into
    bytes read. */
 int __attribute__((weak))
-_read (int fd,
-       void * ptr,
-       size_t len)
+_read (int fd, void * ptr, size_t len)
 {
   int res;
   struct fdent *pfd;
@@ -409,9 +405,7 @@ _read (int fd,
 
 /* fd, is a user file descriptor. */
 off_t
-_swilseek (int fd,
-	off_t ptr,
-	int dir)
+_swilseek (int fd, off_t ptr, int dir)
 {
   off_t res;
   struct fdent *pfd;
@@ -447,7 +441,7 @@ _swilseek (int fd,
         }
       dir = SEEK_SET;
     }
- 
+
 #ifdef ARM_RDI_MONITOR
   int block[2];
   if (dir == SEEK_END)
@@ -458,7 +452,7 @@ _swilseek (int fd,
         return -1;
       ptr += res;
     }
-  
+
   /* This code only does absolute seeks.  */
   block[0] = pfd->handle;
   block[1] = (int) ptr;
@@ -494,9 +488,7 @@ _swilseek (int fd,
 }
 
 off_t
-_lseek (int fd,
-	off_t ptr,
-	int dir)
+_lseek (int fd, off_t ptr, int dir)
 {
   return _swilseek (fd, ptr, dir);
 }
@@ -504,18 +496,15 @@ _lseek (int fd,
 /* fh, is a valid internal file handle.
    Returns the number of bytes *not* written. */
 int
-_swiwrite (
-	   int    fh,
-	   const void * ptr,
-	   size_t    len)
+_swiwrite (int fh, const void * ptr, size_t len)
 {
 #ifdef ARM_RDI_MONITOR
   int block[3];
-  
+
   block[0] = fh;
   block[1] = (int) ptr;
   block[2] = (int) len;
-  
+
   return checkerror (do_AngelSWI (AngelSWI_Reason_Write, block));
 #else
   register int r0 asm("r0");
@@ -533,9 +522,7 @@ _swiwrite (
 
 /* fd, is a user file descriptor. */
 int __attribute__((weak))
-_write (int    fd,
-	const void * ptr,
-	size_t    len)
+_write (int fd, const void * ptr, size_t len)
 {
   int res;
   struct fdent *pfd;
@@ -593,7 +580,7 @@ _swiopen (const char * path, int flags)
         }
     }
 
-  /* The flags are Unix-style, so we need to convert them. */ 
+  /* The flags are Unix-style, so we need to convert them.  */
 #ifdef O_BINARY
   if (flags & O_BINARY)
     aflags |= 1;
@@ -611,25 +598,24 @@ _swiopen (const char * path, int flags)
 
   if (flags & O_APPEND)
     {
-      /* Can't ask for w AND a; means just 'a'.  */
-      aflags &= ~4;
+      aflags &= ~4; /* Can't ask for w AND a; means just 'a'.  */
       aflags |= 8;
     }
-  
+
 #ifdef ARM_RDI_MONITOR
   block[0] = (int) path;
   block[2] = strlen (path);
   block[1] = aflags;
-  
+
   fh = do_AngelSWI (AngelSWI_Reason_Open, block);
-  
+
 #else
   asm ("mov r0,%2; mov r1, %3; swi %a1; mov %0, r0"
        : "=r"(fh)
        : "i" (SWI_Open),"r"(path),"r"(aflags)
        : "r0","r1");
 #endif
-  
+
   /* Return a user file descriptor or an error. */
   if (fh >= 0)
     {
@@ -784,13 +770,13 @@ _stat (const char *fname, struct stat *st)
 {
   int fd, res;
   memset (st, 0, sizeof (* st));
-  /* The best we can do is try to open the file readonly.  
-     If it exists, then we can guess a few things about it. */
+  /* The best we can do is try to open the file readonly.  If it exists,
+     then we can guess a few things about it.  */
   if ((fd = _open (fname, O_RDONLY)) == -1)
     return -1;
   st->st_mode |= S_IFREG | S_IREAD;
   res = _swistat (fd, st);
-  /* Not interested in the error. */
+  /* Not interested in the error.  */
   _close (fd); 
   return res;
 }
@@ -880,7 +866,7 @@ _times (struct tms * tp)
       tp->tms_cutime = 0;	/* user time, children */
       tp->tms_cstime = 0;	/* system time, children */
     }
-  
+
   return timeval;
 };
 
diff --git a/newlib/libc/sys/arm/arm.h b/newlib/libc/sys/arm/arm.h
index dbed81750..10e5b0509 100644
--- a/newlib/libc/sys/arm/arm.h
+++ b/newlib/libc/sys/arm/arm.h
@@ -85,6 +85,6 @@
 #define CPSR_F_MASK			0x40	/* FIQ bit.  */
 #define CPSR_I_MASK			0x80	/* IRQ bit.  */
 
-#define CPSR_M_MASK			0x0F	/* Mode mask except M[4] */
+#define CPSR_M_MASK			0x0F	/* Mode mask except M[4].  */
 
 #endif /* _LIBGLOSS_ARM_H */
diff --git a/newlib/libc/sys/arm/syscalls.c b/newlib/libc/sys/arm/syscalls.c
index a2997b44c..1f7222980 100644
--- a/newlib/libc/sys/arm/syscalls.c
+++ b/newlib/libc/sys/arm/syscalls.c
@@ -114,6 +114,16 @@ void
 initialise_monitor_handles (void)
 {
   int i;
+  
+  /* Open the standard file descriptors by opening the special
+   * teletype device, ":tt", read-only to obtain a descriptor for
+   * standard input and write-only to obtain a descriptor for standard
+   * output. Finally, open ":tt" in append mode to obtain a descriptor
+   * for standard error. Since this is a write mode, most kernels will
+   * probably return the same value as for standard output, but the
+   * kernel can differentiate the two using the mode flag and return a
+   * different descriptor for standard error.
+   */
 
 #ifdef ARM_RDI_MONITOR
   int volatile block[3];
@@ -163,11 +173,12 @@ get_errno (void)
   return do_AngelSWI (AngelSWI_Reason_Errno, NULL);
 #else
   register int r0 asm("r0");
-  asm ("swi %a1" : "=r"(r0): "i" (SWI_GetErrno));
+  asm ("swi %a1" : "=r"(r0) : "i" (SWI_GetErrno));
   return r0;
 #endif
 }
 
+/* Set errno and return result. */
 static int
 error (int result)
 {
@@ -183,7 +194,10 @@ wrap (int result)
   return result;
 }
 
-/* Returns # chars not! written.  */
+/* file, is a valid user file handle.
+   ptr, is a null terminated string.
+   len, is the length in bytes to read. 
+   Returns the number of bytes *not* written. */
 int
 _swiread (int file, void * ptr, size_t len)
 {
@@ -207,6 +221,9 @@ _swiread (int file, void * ptr, size_t len)
 #endif
 }
 
+/* file, is a valid user file handle.
+   Translates the return of _swiread into
+   bytes read. */
 int __attribute__((weak))
 _read (int file, void * ptr, size_t len)
 {
@@ -223,15 +240,13 @@ _read (int file, void * ptr, size_t len)
   return len - x;
 }
 
+/* file, is a user file descriptor. */
 off_t
 _swilseek (int file, off_t ptr, int dir)
 {
   _off_t res;
   int fh = remap_handle (file);
   int slot = findslot (fh);
-#ifdef ARM_RDI_MONITOR
-  int block[2];
-#endif
 
   if (dir == SEEK_CUR)
     {
@@ -249,6 +264,7 @@ _swilseek (int file, off_t ptr, int dir)
     }
 
 #ifdef ARM_RDI_MONITOR
+  int block[2];
   if (dir == SEEK_END)
     {
       block[0] = fh;
@@ -294,7 +310,8 @@ _lseek (int file, off_t ptr, int dir)
   return wrap (_swilseek (file, ptr, dir));
 }
 
-/* Returns #chars not! written.  */
+/* file, is a valid internal file handle.
+   Returns the number of bytes *not* written. */
 int
 _swiwrite (int file, const void * ptr, size_t len)
 {
@@ -319,6 +336,7 @@ _swiwrite (int file, const void * ptr, size_t len)
 #endif
 }
 
+/* file, is a user file descriptor. */
 int __attribute__((weak))
 _write (int file, const void * ptr, size_t len)
 {
@@ -366,7 +384,7 @@ _swiopen (const char * path, int flags)
 
   if (flags & O_APPEND)
     {
-      aflags &= ~4;     /* Can't ask for w AND a; means just 'a'.  */
+      aflags &= ~4; /* Can't ask for w AND a; means just 'a'.  */
       aflags |= 8;
     }
 
@@ -527,7 +545,7 @@ _sbrk (ptrdiff_t incr)
 
 extern void memset (struct stat *, int, unsigned int);
 
-int
+int __attribute__((weak))
 _fstat (int file, struct stat * st)
 {
   memset (st, 0, sizeof (* st));
@@ -537,7 +555,8 @@ _fstat (int file, struct stat * st)
   file = file;
 }
 
-int _stat (const char *fname, struct stat *st)
+int __attribute__((weak))
+_stat (const char *fname, struct stat *st)
 {
   int file;
 
@@ -553,20 +572,19 @@ int _stat (const char *fname, struct stat *st)
   return 0;
 }
 
-int
-_link (const char *__path1 __attribute__ ((unused)),
-       const char *__path2 __attribute__ ((unused)))
+int __attribute__((weak))
+_link (const char *__path1 __attribute__ ((unused)), const char *__path2 __attribute__ ((unused)))
 {
   errno = ENOSYS;
   return -1;
 }
 
 int
-_unlink (const char *path __attribute__ ((unused)))
+_unlink (const char *path)
 {
 #ifdef ARM_RDI_MONITOR
   int block[2];
-  block[0] = (int) path;
+  block[0] = (int)path;
   block[1] = strlen(path);
   return wrap (do_AngelSWI (AngelSWI_Reason_Remove, block)) ? -1 : 0;
 #else
@@ -659,13 +677,13 @@ _system (const char *s)
      meaning to its return value.  Try to do something reasonable....  */
   if (!s)
     return 1;  /* maybe there is a shell available? we can hope. :-P */
-  block[0] = (int) s;
+  block[0] = (int)s;
   block[1] = strlen (s);
   e = wrap (do_AngelSWI (AngelSWI_Reason_System, block));
   if ((e >= 0) && (e < 256))
     {
       /* We have to convert e, an exit status to the encoded status of
-	 the command.  To avoid hard coding the exit status, we simply
+         the command.  To avoid hard coding the exit status, we simply
 	 loop until we find the right position.  */
       int exit_code;
 
-- 
2.17.1

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

* [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672
@ 2019-08-01 10:13 Alexander Fedotov
  2019-08-01 10:13 ` [PATCH v1 4/4] Alignment libgloss/arm and newlib/libc/sys/arm: minor fixes, alignments and cleanup Alexander Fedotov
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Alexander Fedotov @ 2019-08-01 10:13 UTC (permalink / raw)
  To: newlib, Richard.Earnshaw; +Cc: Alexander Fedotov

---
 newlib/libc/sys/arm/crt0.S | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S
index 9c262428d..40bbc3d69 100644
--- a/newlib/libc/sys/arm/crt0.S
+++ b/newlib/libc/sys/arm/crt0.S
@@ -393,13 +393,14 @@ __change_mode:
 	movs	r1, r0
 #else
 	movs	r0, #AngelSWI_Reason_GetCmdLine
-	adr	r1, .LC30	/* Space for command line.  */
+	ldr	r1, .LC30	/* Space for command line.  */
 #ifdef THUMB_VXM
 	bkpt	AngelSWI
 #else
  	AngelSWIAsm	AngelSWI
 #endif
 	ldr	r1, .LC30
+	ldr	r1, [r1]
 #endif
 	/*  Parse string at r1.  */
 	movs	r0, #0		/* Count of arguments so far.  */
@@ -586,8 +587,7 @@ change_back:
 #endif
 #ifdef ARM_RDI_MONITOR
 .LC30:
-	.word	CommandLine
-	.word	255
+	.word	AngelSWIArgs
 .LC31:
 	.word	__end__
 
@@ -600,6 +600,9 @@ HeapLimit:	.word	0
 __stack_base__:	.word	0
 StackLimit:	.word	0
 CommandLine:	.space	256,0	/*  Maximum length of 255 chars handled.  */
+AngelSWIArgs:
+	.word	CommandLine
+	.word	255
 #endif
 	
 #ifdef __pe__
-- 
2.17.1

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

* Re: [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672
  2019-08-01 10:13 [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Alexander Fedotov
                   ` (2 preceding siblings ...)
  2019-08-01 10:13 ` [PATCH v1 3/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 2404223 Alexander Fedotov
@ 2019-08-01 10:55 ` Corinna Vinschen
  3 siblings, 0 replies; 6+ messages in thread
From: Corinna Vinschen @ 2019-08-01 10:55 UTC (permalink / raw)
  To: newlib

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

Alexander,

can you please create better commit messages?  A short, concise subject
line with not more than ~70 chars, plus a commit message body describing
your change in a few more words.  What do you mean by "reflecting" a
commit SHA-1?  That's not at all helpful for the future reader.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

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

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

* Re: [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672
@ 2019-08-02 15:11 Alexander Fedotov
  0 siblings, 0 replies; 6+ messages in thread
From: Alexander Fedotov @ 2019-08-02 15:11 UTC (permalink / raw)
  To: vinschen; +Cc: Newlib

Done. See new thread there https://sourceware.org/ml/newlib/2019/msg00410.html

Best regards,
Alex

>Alexander,
>
>can you please create better commit messages?  A short, concise subject
>line with not more than ~70 chars, plus a commit message body describing
>your change in a few more words.  What do you mean by "reflecting" a
>commit SHA-1?  That's not at all helpful for the future reader.
>
>
>Thanks,
>Corinna
>
>--
>Corinna Vinschen
>Cygwin Maintainer
>Red Hat

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

end of thread, other threads:[~2019-08-02 15:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-01 10:13 [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Alexander Fedotov
2019-08-01 10:13 ` [PATCH v1 4/4] Alignment libgloss/arm and newlib/libc/sys/arm: minor fixes, alignments and cleanup Alexander Fedotov
2019-08-01 10:13 ` [PATCH v1 2/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commits 8d98f95, 5c9403e Alexander Fedotov
2019-08-01 10:13 ` [PATCH v1 3/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 2404223 Alexander Fedotov
2019-08-01 10:55 ` [PATCH v1 1/4] Alignment libgloss/arm and newlib/libc/sys/arm: reflect commit 9b11672 Corinna Vinschen
2019-08-02 15:11 Alexander Fedotov

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