mirror of
https://github.com/SRI-CSL/gllvm
synced 2026-06-08 12:28:35 +00:00
Futzing insidee the vagrant box.
This commit is contained in:
Executable
+108281
File diff suppressed because it is too large
Load Diff
Executable
+501
@@ -0,0 +1,501 @@
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
thttpd.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
libhttpd.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
fdwatch.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
mmc.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
timers.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
match.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-c
|
||||
tdate_parse.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I.
|
||||
-o
|
||||
thttpd
|
||||
thttpd.o
|
||||
libhttpd.o
|
||||
fdwatch.o
|
||||
mmc.o
|
||||
timers.o
|
||||
match.o
|
||||
tdate_parse.o
|
||||
-lcrypt
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/cgi-src
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I..
|
||||
-c
|
||||
redirect.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/cgi-src
|
||||
clang
|
||||
redirect.o
|
||||
-lcrypt
|
||||
-o
|
||||
redirect
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/cgi-src
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I..
|
||||
-c
|
||||
ssi.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/cgi-src
|
||||
clang
|
||||
ssi.o
|
||||
../match.o
|
||||
-lcrypt
|
||||
-o
|
||||
ssi
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/cgi-src
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I..
|
||||
-c
|
||||
phf.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/cgi-src
|
||||
clang
|
||||
phf.o
|
||||
-lcrypt
|
||||
-o
|
||||
phf
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/extras
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I..
|
||||
-DWEBDIR="/usr/local/www"
|
||||
-c
|
||||
makeweb.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/extras
|
||||
clang
|
||||
makeweb.o
|
||||
-o
|
||||
makeweb
|
||||
-lcrypt
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/extras
|
||||
clang
|
||||
-O
|
||||
-DHAVE__PROGNAME=1
|
||||
-DHAVE_FCNTL_H=1
|
||||
-DHAVE_GRP_H=1
|
||||
-DHAVE_MEMORY_H=1
|
||||
-DHAVE_PATHS_H=1
|
||||
-DHAVE_POLL_H=1
|
||||
-DHAVE_SYS_POLL_H=1
|
||||
-DTIME_WITH_SYS_TIME=1
|
||||
-DHAVE_DIRENT_H=1
|
||||
-DHAVE_LIBCRYPT=1
|
||||
-DHAVE_STRERROR=1
|
||||
-DHAVE_WAITPID=1
|
||||
-DHAVE_VSNPRINTF=1
|
||||
-DHAVE_DAEMON=1
|
||||
-DHAVE_SETSID=1
|
||||
-DHAVE_GETADDRINFO=1
|
||||
-DHAVE_GETNAMEINFO=1
|
||||
-DHAVE_GAI_STRERROR=1
|
||||
-DHAVE_SIGSET=1
|
||||
-DHAVE_ATOLL=1
|
||||
-DHAVE_UNISTD_H=1
|
||||
-DHAVE_GETPAGESIZE=1
|
||||
-DHAVE_MMAP=1
|
||||
-DHAVE_SELECT=1
|
||||
-DHAVE_POLL=1
|
||||
-DHAVE_TM_GMTOFF=1
|
||||
-DHAVE_INT64T=1
|
||||
-DHAVE_SOCKLENT=1
|
||||
-I..
|
||||
-DWEBDIR="/usr/local/www"
|
||||
-c
|
||||
htpasswd.c
|
||||
|
||||
/home/vagrant/go/src/github.com/SRI-CSL/gllvm/examples/thttpd/thttpd-2.27/extras
|
||||
clang
|
||||
htpasswd.o
|
||||
-o
|
||||
htpasswd
|
||||
-lcrypt
|
||||
|
||||
@@ -44,6 +44,10 @@ import (
|
||||
"sync"
|
||||
)
|
||||
|
||||
const (
|
||||
REPLAY_MODE = true
|
||||
)
|
||||
|
||||
type bitcodeToObjectLink struct {
|
||||
bcPath string
|
||||
objPath string
|
||||
@@ -51,6 +55,9 @@ type bitcodeToObjectLink struct {
|
||||
|
||||
//Compile wraps a call to the compiler with the given args.
|
||||
func Compile(args []string, compiler string) (exitCode int) {
|
||||
|
||||
if REPLAY_MODE { Record(args, compiler) }
|
||||
|
||||
exitCode = 0
|
||||
//in the configureOnly case we have to know the exit code of the compile
|
||||
//because that is how configure figures out what it can and cannot do.
|
||||
|
||||
+22
-14
@@ -61,6 +61,7 @@ type extractionArgs struct {
|
||||
InputFile string
|
||||
OutputFile string
|
||||
LinkerName string
|
||||
LlvmArchiverName string
|
||||
ArchiverName string
|
||||
ArArgs []string
|
||||
Extractor func(string) []string
|
||||
@@ -152,7 +153,8 @@ func resolveTool(defaultPath string, envPath string, usrPath string) (path strin
|
||||
func parseSwitches() (ea extractionArgs) {
|
||||
ea = extractionArgs{
|
||||
LinkerName: "llvm-link",
|
||||
ArchiverName: "llvm-ar",
|
||||
LlvmArchiverName: "llvm-ar",
|
||||
ArchiverName: "ar",
|
||||
}
|
||||
|
||||
verbosePtr := flag.Bool("v", false, "verbose mode")
|
||||
@@ -165,9 +167,11 @@ func parseSwitches() (ea extractionArgs) {
|
||||
|
||||
outputFilePtr := flag.String("o", "", "the output file")
|
||||
|
||||
archiverNamePtr := flag.String("a", "", "the llvm archiver")
|
||||
llvmArchiverNamePtr := flag.String("a", "", "the llvm archiver (i.e. llvm-ar)")
|
||||
|
||||
linkerNamePtr := flag.String("l", "", "the llvm linker")
|
||||
archiverNamePtr := flag.String("r", "", "the system archiver (i.e. ar)")
|
||||
|
||||
linkerNamePtr := flag.String("l", "", "the llvm linker (i.e. llvm-link)")
|
||||
|
||||
linkArgSizePtr := flag.Int("n", 0, "maximum llvm-link command line size (in bytes)")
|
||||
|
||||
@@ -181,8 +185,12 @@ func parseSwitches() (ea extractionArgs) {
|
||||
ea.BuildBitcodeModule = *buildBitcodeModule
|
||||
ea.LinkArgSize = *linkArgSizePtr
|
||||
ea.KeepTemp = *keepTempPtr
|
||||
|
||||
if len(*archiverNamePtr) > 0 {
|
||||
ea.ArchiverName = *archiverNamePtr
|
||||
}
|
||||
|
||||
ea.ArchiverName = resolveTool(ea.ArchiverName, LLVMARName, *archiverNamePtr)
|
||||
ea.LlvmArchiverName = resolveTool(ea.LlvmArchiverName, LLVMARName, *llvmArchiverNamePtr)
|
||||
|
||||
ea.LinkerName = resolveTool(ea.LinkerName, LLVMLINKName, *linkerNamePtr)
|
||||
|
||||
@@ -193,7 +201,7 @@ func parseSwitches() (ea extractionArgs) {
|
||||
LogInfo("ea.Verbose: %v\n", ea.Verbose)
|
||||
LogInfo("ea.WriteManifest: %v\n", ea.WriteManifest)
|
||||
LogInfo("ea.BuildBitcodeModule: %v\n", ea.BuildBitcodeModule)
|
||||
LogInfo("ea.ArchiverName: %v\n", ea.ArchiverName)
|
||||
LogInfo("ea.LlvmArchiverName: %v\n", ea.LlvmArchiverName)
|
||||
LogInfo("ea.LinkerName: %v\n", ea.LinkerName)
|
||||
LogInfo("ea.OutputFile: %v\n", ea.OutputFile)
|
||||
|
||||
@@ -259,7 +267,7 @@ func handleThinArchive(ea extractionArgs) {
|
||||
var objectFiles []string
|
||||
var bcFiles []string
|
||||
|
||||
objectFiles = listArchiveFiles(ea.InputFile)
|
||||
objectFiles = listArchiveFiles(ea, ea.InputFile)
|
||||
|
||||
LogInfo("handleThinArchive: extractionArgs = %v\nobjectFiles = %v\n", ea, objectFiles)
|
||||
|
||||
@@ -309,7 +317,7 @@ func handleThinArchive(ea extractionArgs) {
|
||||
|
||||
}
|
||||
|
||||
func listArchiveFiles(inputFile string) (contents []string) {
|
||||
func listArchiveFiles(ea extractionArgs, inputFile string) (contents []string) {
|
||||
var arArgs []string
|
||||
arArgs = append(arArgs, "-t")
|
||||
arArgs = append(arArgs, inputFile)
|
||||
@@ -322,7 +330,7 @@ func listArchiveFiles(inputFile string) (contents []string) {
|
||||
return
|
||||
}
|
||||
|
||||
func extractFile(archive string, filename string, instance int) bool {
|
||||
func extractFile(ea extractionArgs, archive string, filename string, instance int) bool {
|
||||
var arArgs []string
|
||||
if runtime.GOOS != osDARWIN {
|
||||
arArgs = append(arArgs, "xN")
|
||||
@@ -344,10 +352,10 @@ func extractFile(archive string, filename string, instance int) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func fetchTOC(inputFile string) map[string]int {
|
||||
func fetchTOC(ea extractionArgs, inputFile string) map[string]int {
|
||||
toc := make(map[string]int)
|
||||
|
||||
contents := listArchiveFiles(inputFile)
|
||||
contents := listArchiveFiles(ea, inputFile)
|
||||
|
||||
for _, item := range contents {
|
||||
//iam: this is a hack to make get-bc work on libcurl.a
|
||||
@@ -399,14 +407,14 @@ func handleArchive(ea extractionArgs) {
|
||||
}
|
||||
|
||||
//1. fetch the Table of Contents
|
||||
toc := fetchTOC(inputFile)
|
||||
toc := fetchTOC(ea, inputFile)
|
||||
|
||||
LogDebug("Table of Contents of %v:\n%v\n", inputFile, toc)
|
||||
|
||||
for obj, instance := range toc {
|
||||
for i := 1; i <= instance; i++ {
|
||||
|
||||
if obj != "" && extractFile(inputFile, obj, i) {
|
||||
if obj != "" && extractFile(ea, inputFile, obj, i) {
|
||||
|
||||
artifacts := ea.Extractor(obj)
|
||||
LogInfo("\t%v\n", artifacts)
|
||||
@@ -469,8 +477,8 @@ func archiveBcFiles(ea extractionArgs, bcFiles []string) {
|
||||
var args []string
|
||||
args = append(args, "rs", absOutputFile)
|
||||
args = append(args, bcFilesInDir...)
|
||||
success, err := execCmd(ea.ArchiverName, args, dir)
|
||||
LogInfo("ea.ArchiverName = %s, args = %v, dir = %s\n", ea.ArchiverName, args, dir)
|
||||
success, err := execCmd(ea.LlvmArchiverName, args, dir)
|
||||
LogInfo("ea.LlvmArchiverName = %s, args = %v, dir = %s\n", ea.LlvmArchiverName, args, dir)
|
||||
if !success {
|
||||
LogFatal("There was an error creating the bitcode archive: %v.\n", err)
|
||||
}
|
||||
|
||||
+25
-8
@@ -3,6 +3,7 @@ package shared
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -59,7 +60,7 @@ func readCompilerCall(scanner *bufio.Scanner) (call *CompilerCall) {
|
||||
if len(line) == 0 {
|
||||
panic("empty CompilerCall.Pwd")
|
||||
}
|
||||
call.Pwd = line
|
||||
callp.Pwd = line
|
||||
if !scanner.Scan() {
|
||||
panic("non-existant CompilerCall.Name")
|
||||
}
|
||||
@@ -67,17 +68,17 @@ func readCompilerCall(scanner *bufio.Scanner) (call *CompilerCall) {
|
||||
if len(line) == 0 {
|
||||
panic("empty CompilerCall.Name")
|
||||
}
|
||||
call.Name = line
|
||||
callp.Name = line
|
||||
|
||||
for scanner.Scan() {
|
||||
line = scanner.Text()
|
||||
if len(line) == 0 {
|
||||
if len(call.Args) == 0 {
|
||||
if len(callp.Args) == 0 {
|
||||
panic("empty CompilerCall.Args")
|
||||
}
|
||||
break
|
||||
}
|
||||
call.Args = append(call.Args, line)
|
||||
callp.Args = append(callp.Args, line)
|
||||
}
|
||||
call = callp
|
||||
}
|
||||
@@ -89,17 +90,33 @@ func readCompilerCall(scanner *bufio.Scanner) (call *CompilerCall) {
|
||||
*
|
||||
*/
|
||||
func Replay(path string) (ok bool) {
|
||||
|
||||
cwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Printf("Replay cwd = %v\n", cwd)
|
||||
fp, err := os.OpenFile(path, os.O_RDONLY, os.ModePerm)
|
||||
if err != nil { return }
|
||||
defer fp.Close()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer fp.Close()
|
||||
scanner := bufio.NewScanner(fp)
|
||||
for {
|
||||
callp := readCompilerCall(scanner)
|
||||
if callp == nil { return }
|
||||
if callp == nil {
|
||||
goto farewell
|
||||
}
|
||||
ok = replayCall(callp)
|
||||
if !ok { return }
|
||||
if !ok {
|
||||
goto farewell
|
||||
}
|
||||
}
|
||||
ok = true
|
||||
|
||||
farewell:
|
||||
os.Chdir(cwd)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"github.com/SRI-CSL/gllvm/shared"
|
||||
"testing"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
|
||||
func Test_replay_thttpd(t *testing.T) {
|
||||
arg := "../data/thttpd_replay.log"
|
||||
|
||||
ok := shared.Replay(arg)
|
||||
|
||||
if !ok {
|
||||
t.Errorf("Replay of %v returned %v\n", arg, ok)
|
||||
} else {
|
||||
fmt.Println("Replay OK")
|
||||
}
|
||||
}
|
||||
|
||||
func Test_replay_nodejs(t *testing.T) {
|
||||
arg := "../data/nodejs_replay.log"
|
||||
|
||||
ok := shared.Replay(arg)
|
||||
|
||||
if !ok {
|
||||
t.Errorf("Replay of %v returned %v\n", arg, ok)
|
||||
} else {
|
||||
fmt.Println("Replay OK")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user