aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2014-03-21 20:34:46 +0000
committerJeff Johnston <jjohnstn@redhat.com>2014-03-21 20:34:46 +0000
commit8194dcec36afbfb8ceab9409605d72eba5f773ea (patch)
tree2001465d3dc19048e64b8f9c713a8f021854d13d
parentc18decccef958c6e37acc341391a6712d4570ade (diff)
downloadnewlib-8194dcec36afbfb8ceab9409605d72eba5f773ea.zip
newlib-8194dcec36afbfb8ceab9409605d72eba5f773ea.tar.gz
newlib-8194dcec36afbfb8ceab9409605d72eba5f773ea.tar.bz2
2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
* nds32/syscall_argv.S: Correct the method to set errno. * nds32/syscall_argvlen.S: Ditto. * nds32/syscall_chdir.S: Ditto. * nds32/syscall_chmod.S: Ditto. * nds32/syscall_close.S: Ditto. * nds32/syscall_error_handler.S: Ditto. * nds32/syscall_fstat.S: Ditto. * nds32/syscall_getpid.S: Ditto. * nds32/syscall_gettimeofday.S: Ditto. * nds32/syscall_isatty.S: Ditto. * nds32/syscall_kill.S: Ditto. * nds32/syscall_link.S: Ditto. * nds32/syscall_lseek.S: Ditto. * nds32/syscall_open.S: Ditto. * nds32/syscall_read.S: Ditto. * nds32/syscall_rename.S: Ditto. * nds32/syscall_sbrk.S: Ditto. * nds32/syscall_stat.S: Ditto. * nds32/syscall_system.S: Ditto. * nds32/syscall_time.S: Ditto. * nds32/syscall_times.S: Ditto. * nds32/syscall_unlink.S: Ditto. * nds32/syscall_utime.S: Ditto. * nds32/syscall_write.S: Ditto.
-rw-r--r--libgloss/ChangeLog27
-rw-r--r--libgloss/nds32/syscall_argv.S1
-rw-r--r--libgloss/nds32/syscall_argvlen.S1
-rw-r--r--libgloss/nds32/syscall_chdir.S1
-rw-r--r--libgloss/nds32/syscall_chmod.S1
-rw-r--r--libgloss/nds32/syscall_close.S1
-rw-r--r--libgloss/nds32/syscall_error_handler.S5
-rw-r--r--libgloss/nds32/syscall_fstat.S1
-rw-r--r--libgloss/nds32/syscall_getpid.S1
-rw-r--r--libgloss/nds32/syscall_gettimeofday.S1
-rw-r--r--libgloss/nds32/syscall_isatty.S1
-rw-r--r--libgloss/nds32/syscall_kill.S1
-rw-r--r--libgloss/nds32/syscall_link.S1
-rw-r--r--libgloss/nds32/syscall_lseek.S1
-rw-r--r--libgloss/nds32/syscall_open.S1
-rw-r--r--libgloss/nds32/syscall_read.S1
-rw-r--r--libgloss/nds32/syscall_rename.S1
-rw-r--r--libgloss/nds32/syscall_sbrk.S4
-rw-r--r--libgloss/nds32/syscall_stat.S1
-rw-r--r--libgloss/nds32/syscall_system.S1
-rw-r--r--libgloss/nds32/syscall_time.S1
-rw-r--r--libgloss/nds32/syscall_times.S1
-rw-r--r--libgloss/nds32/syscall_unlink.S1
-rw-r--r--libgloss/nds32/syscall_utime.S1
-rw-r--r--libgloss/nds32/syscall_write.S1
25 files changed, 33 insertions, 25 deletions
diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index e4891f3..e25b729 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,5 +1,32 @@
2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
+ * nds32/syscall_argv.S: Correct the method to set errno.
+ * nds32/syscall_argvlen.S: Ditto.
+ * nds32/syscall_chdir.S: Ditto.
+ * nds32/syscall_chmod.S: Ditto.
+ * nds32/syscall_close.S: Ditto.
+ * nds32/syscall_error_handler.S: Ditto.
+ * nds32/syscall_fstat.S: Ditto.
+ * nds32/syscall_getpid.S: Ditto.
+ * nds32/syscall_gettimeofday.S: Ditto.
+ * nds32/syscall_isatty.S: Ditto.
+ * nds32/syscall_kill.S: Ditto.
+ * nds32/syscall_link.S: Ditto.
+ * nds32/syscall_lseek.S: Ditto.
+ * nds32/syscall_open.S: Ditto.
+ * nds32/syscall_read.S: Ditto.
+ * nds32/syscall_rename.S: Ditto.
+ * nds32/syscall_sbrk.S: Ditto.
+ * nds32/syscall_stat.S: Ditto.
+ * nds32/syscall_system.S: Ditto.
+ * nds32/syscall_time.S: Ditto.
+ * nds32/syscall_times.S: Ditto.
+ * nds32/syscall_unlink.S: Ditto.
+ * nds32/syscall_utime.S: Ditto.
+ * nds32/syscall_write.S: Ditto.
+
+2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
+
* nds32/crt0.S: Use pseudo-instruction "bal frame" to replace
"la + jral".
* nds32/crt1.S: Ditto.
diff --git a/libgloss/nds32/syscall_argv.S b/libgloss/nds32/syscall_argv.S
index 7727893..2fcf1f1 100644
--- a/libgloss/nds32/syscall_argv.S
+++ b/libgloss/nds32/syscall_argv.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _argv, SYS_argv
diff --git a/libgloss/nds32/syscall_argvlen.S b/libgloss/nds32/syscall_argvlen.S
index c74d087..3f88a41 100644
--- a/libgloss/nds32/syscall_argvlen.S
+++ b/libgloss/nds32/syscall_argvlen.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _argvlen, SYS_argvlen
diff --git a/libgloss/nds32/syscall_chdir.S b/libgloss/nds32/syscall_chdir.S
index 080e3dc..0fd291e 100644
--- a/libgloss/nds32/syscall_chdir.S
+++ b/libgloss/nds32/syscall_chdir.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _chdir, SYS_chdir
diff --git a/libgloss/nds32/syscall_chmod.S b/libgloss/nds32/syscall_chmod.S
index 5827ee1..70c903d 100644
--- a/libgloss/nds32/syscall_chmod.S
+++ b/libgloss/nds32/syscall_chmod.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _chmod, SYS_chmod
diff --git a/libgloss/nds32/syscall_close.S b/libgloss/nds32/syscall_close.S
index 82733a9..c0abe59 100644
--- a/libgloss/nds32/syscall_close.S
+++ b/libgloss/nds32/syscall_close.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _close, SYS_close
diff --git a/libgloss/nds32/syscall_error_handler.S b/libgloss/nds32/syscall_error_handler.S
index dbb5f68..9398c51 100644
--- a/libgloss/nds32/syscall_error_handler.S
+++ b/libgloss/nds32/syscall_error_handler.S
@@ -31,7 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
+ .extern _impure_ptr /* The first element is _errno. */
.text
.global __syscall_error_handler
.type __syscall_error_handler, @function
@@ -41,7 +41,8 @@ __syscall_error_handler:
addi $r1, $r0, 1
bnez $r1, 1f /* Branch if success. */
syscall SYS_geterr /* There is something wrong. */
- s.w $r0, errno /* Store error code into errno. */
+ l.w $r15, _impure_ptr
+ swi $r0, [$r15] /* Set errno. */
move $r0, -1
1:
ret
diff --git a/libgloss/nds32/syscall_fstat.S b/libgloss/nds32/syscall_fstat.S
index 855c982..94e58ad 100644
--- a/libgloss/nds32/syscall_fstat.S
+++ b/libgloss/nds32/syscall_fstat.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _fstat, SYS_fstat
diff --git a/libgloss/nds32/syscall_getpid.S b/libgloss/nds32/syscall_getpid.S
index 4bf9ba4..8468d3f 100644
--- a/libgloss/nds32/syscall_getpid.S
+++ b/libgloss/nds32/syscall_getpid.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _getpid, SYS_getpid
diff --git a/libgloss/nds32/syscall_gettimeofday.S b/libgloss/nds32/syscall_gettimeofday.S
index 433d2b4..85e2eae 100644
--- a/libgloss/nds32/syscall_gettimeofday.S
+++ b/libgloss/nds32/syscall_gettimeofday.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _gettimeofday, SYS_gettimeofday
diff --git a/libgloss/nds32/syscall_isatty.S b/libgloss/nds32/syscall_isatty.S
index 2dd7931..bd30248 100644
--- a/libgloss/nds32/syscall_isatty.S
+++ b/libgloss/nds32/syscall_isatty.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _isatty, SYS_isatty
diff --git a/libgloss/nds32/syscall_kill.S b/libgloss/nds32/syscall_kill.S
index 196bcef..4a040f6 100644
--- a/libgloss/nds32/syscall_kill.S
+++ b/libgloss/nds32/syscall_kill.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _kill, SYS_kill
diff --git a/libgloss/nds32/syscall_link.S b/libgloss/nds32/syscall_link.S
index bd4e23c..cbcb759 100644
--- a/libgloss/nds32/syscall_link.S
+++ b/libgloss/nds32/syscall_link.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _link, SYS_link
diff --git a/libgloss/nds32/syscall_lseek.S b/libgloss/nds32/syscall_lseek.S
index 269f531..86e2d31 100644
--- a/libgloss/nds32/syscall_lseek.S
+++ b/libgloss/nds32/syscall_lseek.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _lseek, SYS_lseek
diff --git a/libgloss/nds32/syscall_open.S b/libgloss/nds32/syscall_open.S
index d9ba248..6ef79cb 100644
--- a/libgloss/nds32/syscall_open.S
+++ b/libgloss/nds32/syscall_open.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _open, SYS_open
diff --git a/libgloss/nds32/syscall_read.S b/libgloss/nds32/syscall_read.S
index 6668d21..ad15dd4 100644
--- a/libgloss/nds32/syscall_read.S
+++ b/libgloss/nds32/syscall_read.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _read, SYS_read
diff --git a/libgloss/nds32/syscall_rename.S b/libgloss/nds32/syscall_rename.S
index bf394bf..0781e3a 100644
--- a/libgloss/nds32/syscall_rename.S
+++ b/libgloss/nds32/syscall_rename.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _rename, SYS_rename
diff --git a/libgloss/nds32/syscall_sbrk.S b/libgloss/nds32/syscall_sbrk.S
index 3c2d9d4..ae32e8d 100644
--- a/libgloss/nds32/syscall_sbrk.S
+++ b/libgloss/nds32/syscall_sbrk.S
@@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "../syscall.h"
#include "syscall_extra.h"
+ .extern _impure_ptr /* The first element is _errno. */
.extern _end
.global _sbrk
@@ -66,7 +67,8 @@ _sbrk:
.Lerror:
movi $r0, 12
- s.w $r0, errno /* Set error code: 12 (ENOMEM) to errno. */
+ l.w $r15, _impure_ptr
+ swi $r0, [$r15] /* Set errno. */
movi $r0, -1 /* Reture value is -1. */
ret
diff --git a/libgloss/nds32/syscall_stat.S b/libgloss/nds32/syscall_stat.S
index 06b35ec..105fda4 100644
--- a/libgloss/nds32/syscall_stat.S
+++ b/libgloss/nds32/syscall_stat.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _stat, SYS_stat
diff --git a/libgloss/nds32/syscall_system.S b/libgloss/nds32/syscall_system.S
index 648235e..3422d86 100644
--- a/libgloss/nds32/syscall_system.S
+++ b/libgloss/nds32/syscall_system.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _system, SYS_system
diff --git a/libgloss/nds32/syscall_time.S b/libgloss/nds32/syscall_time.S
index 9af57ac..811dd12 100644
--- a/libgloss/nds32/syscall_time.S
+++ b/libgloss/nds32/syscall_time.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _time, SYS_time
diff --git a/libgloss/nds32/syscall_times.S b/libgloss/nds32/syscall_times.S
index 51c48af..2d21814 100644
--- a/libgloss/nds32/syscall_times.S
+++ b/libgloss/nds32/syscall_times.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _times, SYS_times
diff --git a/libgloss/nds32/syscall_unlink.S b/libgloss/nds32/syscall_unlink.S
index aa98efb..77a62d6 100644
--- a/libgloss/nds32/syscall_unlink.S
+++ b/libgloss/nds32/syscall_unlink.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _unlink, SYS_unlink
diff --git a/libgloss/nds32/syscall_utime.S b/libgloss/nds32/syscall_utime.S
index b53a21f..45af323 100644
--- a/libgloss/nds32/syscall_utime.S
+++ b/libgloss/nds32/syscall_utime.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _utime, SYS_utime
diff --git a/libgloss/nds32/syscall_write.S b/libgloss/nds32/syscall_write.S
index d5f542b..1b1752c 100644
--- a/libgloss/nds32/syscall_write.S
+++ b/libgloss/nds32/syscall_write.S
@@ -31,5 +31,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "syscall_extra.h"
- .extern errno
SYS_WRAPPER _write, SYS_write