OSDN Git Service

Clean up syscalls, add some Solaris support.
[pf3gnuchains/gcc-fork.git] / libgo / Makefile.in
index e54fad2..1b8fd5a 100644 (file)
@@ -938,9 +938,13 @@ go_mime_files = \
        go/mime/mediatype.go \
        go/mime/type.go
 
-@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_linux.go
+# By default use select with pipes.  Most systems should have
+# something better.
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_rtems.go
+@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_linux.go
 @LIBGO_IS_RTEMS_TRUE@go_net_fd_os_file = go/net/fd_rtems.go
-@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver.go
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver.go
+@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver.go
 @LIBGO_IS_RTEMS_TRUE@go_net_newpollserver_file = go/net/newpollserver_rtems.go
 go_net_files = \
        go/net/dial.go \
@@ -1389,26 +1393,56 @@ go_testing_quick_files = \
 go_testing_script_files = \
        go/testing/script/script.go
 
-@LIBGO_IS_RTEMS_FALSE@syscall_exec_os_file = syscalls/exec.go
-@LIBGO_IS_RTEMS_TRUE@syscall_exec_os_file = syscalls/exec_stubs.go
-@LIBGO_IS_RTEMS_FALSE@syscall_socket_os_file = syscalls/socket_linux.go
-@LIBGO_IS_RTEMS_TRUE@syscall_socket_os_file = syscalls/socket_bsd.go
-@LIBGO_IS_RTEMS_FALSE@syscall_socket_epoll_file = syscalls/socket_epoll.go
-@LIBGO_IS_RTEMS_TRUE@syscall_socket_epoll_file = 
-@LIBGO_IS_RTEMS_FALSE@syscall_sysfile_os_file = syscalls/sysfile_linux.go
-@LIBGO_IS_RTEMS_TRUE@syscall_sysfile_os_file = syscalls/sysfile_rtems.go
 @LIBGO_IS_RTEMS_FALSE@syscall_syscall_file = syscalls/syscall.go
+
+# Define Syscall and Syscall6.
 @LIBGO_IS_RTEMS_TRUE@syscall_syscall_file = syscalls/syscall_stubs.go
+# Use lseek by default.
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_filesize_file = syscalls/sysfile_regfile.go
+
+# Declare libc functions that vary for largefile systems.
+# Always use lseek64 on GNU/Linux.
+@LIBGO_IS_LINUX_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
+# Use lseek on amd64 Solaris.
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_filesize_flie = syscalls/sysfile_regfile.go
+# Use lseek64 on 386 Solaris.
+@LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_filesize_flie = syscalls/sysfile_largefile.go
+@LIBGO_IS_RTEMS_FALSE@syscall_exec_os_file = syscalls/exec.go
+
+# Define ForkExec, PtraceForkExec, Exec, and Wait4.
+@LIBGO_IS_RTEMS_TRUE@syscall_exec_os_file = syscalls/exec_stubs.go
+@LIBGO_IS_RTEMS_FALSE@syscall_sleep_file = syscalls/sleep_select.go
+
+# Define Sleep.
+@LIBGO_IS_RTEMS_TRUE@syscall_sleep_file = syscalls/sleep_rtems.go
 @LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr.go
+
+# Define Errstr.
 @LIBGO_IS_RTEMS_TRUE@syscall_errstr_file = syscalls/errstr_rtems.go
+# On other systems we hope strerror_r is just strerror_r.
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_decl_file = syscalls/errstr_decl.go
+# In Linux the POSIX strerror_r is called __xpg_strerror_r.
 @LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_decl_file = syscalls/errstr_decl_linux.go
+
+# Declare libc_strerror_r which is the Go name for strerror_r.
+# RTEMS uses newlib in which strerror_r returns char *.
 @LIBGO_IS_RTEMS_TRUE@syscall_errstr_decl_file = syscalls/errstr_decl_rtems.go
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_socket_os_file = syscalls_socket_bsd.go
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_socket_os_file = syscalls/socket_solaris.go
+
+# Define socket sizes and types.
+@LIBGO_IS_LINUX_TRUE@syscall_socket_os_file = syscalls/socket_linux.go
+@LIBGO_IS_LINUX_FALSE@syscall_socket_epoll_file = 
+
+# Support for epoll.
+@LIBGO_IS_LINUX_TRUE@syscall_socket_epoll_file = syscalls/socket_epoll.go
 go_syscall_files = \
        $(syscall_errstr_file) \
        $(syscall_errstr_decl_file) \
        syscalls/exec_helpers.go \
        $(syscall_exec_os_file) \
+       $(syscall_filesize_file) \
+       $(syscall_sleep_file) \
        syscalls/socket.go \
        $(syscall_socket_os_file) \
        $(syscall_socket_epoll_file) \
@@ -1418,7 +1452,6 @@ go_syscall_files = \
        syscalls/syscall_$(GOOS).go \
        syscalls/syscall_$(GOOS)_$(GOARCH).go \
        syscalls/sysfile_posix.go \
-       $(syscall_sysfile_os_file) \
        sysinfo.go \
        syscall_arch.go
 
@@ -3608,6 +3641,7 @@ s-syscall_arch: Makefile
        rm -f syscall_arch.go.tmp
        echo "package syscall" > syscall_arch.go.tmp
        echo 'const ARCH = "'$(GOARCH)'"' >> syscall_arch.go.tmp
+       echo 'const OS = "'$(GOOS)'"' >> syscall_arch.go.tmp
        $(SHELL) $(srcdir)/../move-if-change syscall_arch.go.tmp syscall_arch.go
        $(STAMP) $@
 
@@ -4578,7 +4612,7 @@ testing/script/check: $(CHECK_DEPS)
 .PHONY: testing/script/check
 
 sysinfo.go: $(srcdir)/mksysinfo.sh config.h
-       $(SHELL) $(srcdir)/mksysinfo.sh
+       CC="$(CC)" $(SHELL) $(srcdir)/mksysinfo.sh
 syscalls/libsyscall.a: $(go_syscall_files) $(go_syscall_c_files) sync.gox
        rm -f syscall.gox syscalls/libsyscall.a
        test -d syscalls || $(MKDIR_P) syscalls