Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
9f3b1e6c
Commit
9f3b1e6c
authored
Apr 25, 2011
by
Ian Lance Taylor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libgo: Irix 6 patches.
From Rainer Orth. From-SVN: r172935
parent
e5b0dad8
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
120 additions
and
18 deletions
+120
-18
libgo/Makefile.am
+9
-1
libgo/Makefile.in
+5
-3
libgo/configure
+7
-2
libgo/configure.ac
+7
-2
libgo/go/syslog/syslog_libc.go
+0
-0
libgo/mksysinfo.sh
+8
-10
libgo/syscalls/socket_irix.go
+84
-0
No files found.
libgo/Makefile.am
View file @
9f3b1e6c
...
...
@@ -825,10 +825,14 @@ go_sync_files = \
go/sync/waitgroup.go
if
LIBGO_IS_SOLARIS
go_syslog_file
=
go/syslog/syslog_solaris.go
go_syslog_file
=
go/syslog/syslog_libc.go
else
if
LIBGO_IS_IRIX
go_syslog_file
=
go/syslog/syslog_libc.go
else
go_syslog_file
=
go/syslog/syslog_unix.go
endif
endif
go_syslog_files
=
\
go/syslog/syslog.go
\
...
...
@@ -1300,9 +1304,13 @@ else
if
LIBGO_IS_SOLARIS
syscall_socket_os_file
=
syscalls/socket_solaris.go
else
if
LIBGO_IS_IRIX
syscall_socket_os_file
=
syscalls/socket_irix.go
else
syscall_socket_os_file
=
syscalls/socket_bsd.go
endif
endif
endif
# Support for epoll.
if
LIBGO_IS_LINUX
...
...
libgo/Makefile.in
View file @
9f3b1e6c
...
...
@@ -1172,8 +1172,9 @@ go_sync_files = \
go/sync/rwmutex.go
\
go/sync/waitgroup.go
@LIBGO_IS_SOLARIS_FALSE@
go_syslog_file
=
go/syslog/syslog_unix.go
@LIBGO_IS_SOLARIS_TRUE@
go_syslog_file
=
go/syslog/syslog_solaris.go
@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_SOLARIS_FALSE@
go_syslog_file
=
go/syslog/syslog_unix.go
@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_SOLARIS_FALSE@
go_syslog_file
=
go/syslog/syslog_libc.go
@LIBGO_IS_SOLARIS_TRUE@
go_syslog_file
=
go/syslog/syslog_libc.go
go_syslog_files
=
\
go/syslog/syslog.go
\
$(go_syslog_file)
...
...
@@ -1656,7 +1657,8 @@ go_testing_script_files = \
# 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_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@
syscall_socket_os_file
=
syscalls/socket_bsd.go
@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@
syscall_socket_os_file
=
syscalls/socket_irix.go
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@
syscall_socket_os_file
=
syscalls/socket_solaris.go
# Define socket sizes and types.
...
...
libgo/configure
View file @
9f3b1e6c
...
...
@@ -13295,7 +13295,7 @@ is_386=no
is_alpha
=
no
is_arm
=
no
is_m68k
=
no
mips_abi
=
""
mips_abi
=
unknown
is_ppc
=
no
is_ppc64
=
no
is_sparc
=
no
...
...
@@ -13466,7 +13466,7 @@ else
LIBGO_IS_M68K_FALSE
=
fi
if
test
$mips_abi
!=
""
;
then
if
test
$mips_abi
!=
unknown
;
then
LIBGO_IS_MIPS_TRUE
=
LIBGO_IS_MIPS_FALSE
=
'#'
else
...
...
@@ -13561,6 +13561,11 @@ fi
case
"
$target
"
in
mips-sgi-irix6.5
*
)
# IRIX 6 needs _XOPEN_SOURCE=500 for the XPG5 version of struct
# msghdr in <sys/socket.h>.
OSCFLAGS
=
'-D_XOPEN_SOURCE=500'
;;
*
-
*
-solaris2
.[89]
)
# Solaris 8/9 need this so struct msghdr gets the msg_control
# etc. fields in <sys/socket.h> (_XPG4_2).
...
...
libgo/configure.ac
View file @
9f3b1e6c
...
...
@@ -140,7 +140,7 @@ is_386=no
is_alpha=no
is_arm=no
is_m68k=no
mips_abi=
""
mips_abi=
unknown
is_ppc=no
is_ppc64=no
is_sparc=no
...
...
@@ -233,7 +233,7 @@ AM_CONDITIONAL(LIBGO_IS_386, test $is_386 = yes)
AM_CONDITIONAL(LIBGO_IS_ALPHA, test $is_alpha = yes)
AM_CONDITIONAL(LIBGO_IS_ARM, test $is_arm = yes)
AM_CONDITIONAL(LIBGO_IS_M68K, test $is_m68k = yes)
AM_CONDITIONAL(LIBGO_IS_MIPS, test $mips_abi !=
""
)
AM_CONDITIONAL(LIBGO_IS_MIPS, test $mips_abi !=
unknown
)
AM_CONDITIONAL(LIBGO_IS_MIPSO32, test $mips_abi = o32)
AM_CONDITIONAL(LIBGO_IS_MIPSN32, test $mips_abi = n32)
AM_CONDITIONAL(LIBGO_IS_MIPSN64, test $mips_abi = n64)
...
...
@@ -260,6 +260,11 @@ AC_SUBST(GO_DEBUG_PROC_REGS_OS_ARCH_FILE)
dnl Some targets need special flags to build sysinfo.go.
case "$target" in
mips-sgi-irix6.5*)
# IRIX 6 needs _XOPEN_SOURCE=500 for the XPG5 version of struct
# msghdr in <sys/socket.h>.
OSCFLAGS='-D_XOPEN_SOURCE=500'
;;
*-*-solaris2.[[89]])
# Solaris 8/9 need this so struct msghdr gets the msg_control
# etc. fields in <sys/socket.h> (_XPG4_2).
...
...
libgo/go/syslog/syslog_
solaris
.go
→
libgo/go/syslog/syslog_
libc
.go
View file @
9f3b1e6c
File moved
libgo/mksysinfo.sh
View file @
9f3b1e6c
...
...
@@ -29,12 +29,6 @@ cat > sysinfo.c <<EOF
#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64
#ifdef __sgi__
/* IRIX 6 needs _XOPEN_SOURCE=500 for the XPG5 version of struct msghdr in
<sys/socket.h>. */
#define _XOPEN_SOURCE 500
#endif
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
...
...
@@ -93,13 +87,15 @@ echo 'package syscall' > ${OUT}
grep
-v
'^// '
gen-sysinfo.go |
\
grep
-v
'^func'
|
\
grep
-v
'^type _timeval '
|
\
grep
-v
'^type _timespec\(_t\)\? '
|
\
grep
-v
'^type _timespec_t '
|
\
grep
-v
'^type _timespec '
|
\
grep
-v
'^type _timestruc_t '
|
\
grep
-v
'^type _epoll_'
|
\
grep
-v
'in6_addr'
|
\
grep
-v
'sockaddr_in6'
|
\
sed
-e
's/\([^a-zA-Z0-9_]\)_timeval\([^a-zA-Z0-9_]\)/\1Timeval\2/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timespec\(_t\)\?\([^a-zA-Z0-9_]\)/\1Timespec\3/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timespec_t\([^a-zA-Z0-9_]\)/\1Timespec\2/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timespec\([^a-zA-Z0-9_]\)/\1Timespec\2/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timestruc_t\([^a-zA-Z0-9_]\)/\1Timestruc\2/g'
\
>>
${
OUT
}
...
...
@@ -317,7 +313,8 @@ timespec_nsec=`echo $timespec | sed -n -e 's/^.*tv_nsec \([^ ]*\);.*$/\1/p'`
echo
"type Timespec_sec_t
$timespec_sec
"
>>
${
OUT
}
echo
"type Timespec_nsec_t
$timespec_nsec
"
>>
${
OUT
}
echo
$timespec
|
\
sed
-e
's/^type \(__\)\?_timespec /type Timespec /'
\
sed
-e
's/^type ___timespec /type Timespec /'
\
-e
's/^type _timespec /type Timespec /'
\
-e
's/tv_sec *[a-zA-Z0-9_]*/Sec Timespec_sec_t/'
\
-e
's/tv_nsec *[a-zA-Z0-9_]*/Nsec Timespec_nsec_t/'
>>
${
OUT
}
...
...
@@ -356,7 +353,8 @@ fi | sed -e 's/type _stat64/type Stat_t/' \
-e
's/st_mtim/Mtime/'
\
-e
's/st_ctim/Ctime/'
\
-e
's/\([^a-zA-Z0-9_]\)_timeval\([^a-zA-Z0-9_]\)/\1Timeval\2/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timespec\(_t\)\?\([^a-zA-Z0-9_]\)/\1Timespec\3/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timespec_t\([^a-zA-Z0-9_]\)/\1Timespec\2/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timespec\([^a-zA-Z0-9_]\)/\1Timespec\2/g'
\
-e
's/\([^a-zA-Z0-9_]\)_timestruc_t\([^a-zA-Z0-9_]\)/\1Timestruc\2/g'
\
>>
${
OUT
}
...
...
libgo/syscalls/socket_irix.go
0 → 100644
View file @
9f3b1e6c
// socket_irix.go -- Socket handling specific to IRIX 6.
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package
syscall
const
SizeofSockaddrInet4
=
16
const
SizeofSockaddrInet6
=
28
const
SizeofSockaddrUnix
=
110
type
RawSockaddrInet4
struct
{
Family
uint16
Port
uint16
Addr
[
4
]
byte
/* in_addr */
Zero
[
8
]
uint8
}
func
(
sa
*
RawSockaddrInet4
)
setLen
()
Socklen_t
{
return
SizeofSockaddrInet4
}
type
RawSockaddrInet6
struct
{
Family
uint16
Port
uint16
Flowinfo
uint32
Addr
[
16
]
byte
/* in6_addr */
Scope_id
uint32
}
func
(
sa
*
RawSockaddrInet6
)
setLen
()
Socklen_t
{
return
SizeofSockaddrInet6
}
type
RawSockaddrUnix
struct
{
Family
uint16
Path
[
108
]
int8
}
func
(
sa
*
RawSockaddrUnix
)
setLen
(
int
)
{
}
func
(
sa
*
RawSockaddrUnix
)
getLen
()
(
int
,
int
)
{
if
sa
.
Path
[
0
]
==
0
{
// "Abstract" Unix domain socket.
// Rewrite leading NUL as @ for textual display.
// (This is the standard convention.)
// Not friendly to overwrite in place,
// but the callers below don't care.
sa
.
Path
[
0
]
=
'@'
}
// Assume path ends at NUL.
// This is not technically the Linux semantics for
// abstract Unix domain sockets--they are supposed
// to be uninterpreted fixed-size binary blobs--but
// everyone uses this convention.
n
:=
0
for
n
<
len
(
sa
.
Path
)
-
3
&&
sa
.
Path
[
n
]
!=
0
{
n
++
}
return
n
,
0
}
type
RawSockaddr
struct
{
Family
uint16
Data
[
14
]
int8
}
// BindToDevice binds the socket associated with fd to device.
func
BindToDevice
(
fd
int
,
device
string
)
(
errno
int
)
{
return
ENOSYS
}
// struct ip_mreg is provived in <netinet/in.h>, but protected with _SGIAPI.
// This could be enabled with -D_SGI_SOURCE, but conflicts with
// -D_XOPEN_SOURCE=500 required for msg_control etc. in struct msghgr, so
// simply provide it here.
type
IpMreq
struct
{
Multiaddr
[
4
]
byte
Interface
[
4
]
byte
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment