Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Z
Zipr Toolchain
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Open Source Software
Zipr Toolchain
Commits
516ede61
Commit
516ede61
authored
8 years ago
by
jdh8d
Browse files
Options
Downloads
Patches
Plain Diff
Added full+working support for move_globals (on apache)
parent
7478d36d
No related branches found
No related tags found
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
.gitattributes
+0
-3
0 additions, 3 deletions
.gitattributes
Makefile.in
+0
-37
0 additions, 37 deletions
Makefile.in
configure.in
+0
-66
0 additions, 66 deletions
configure.in
install-sh
+0
-325
0 additions, 325 deletions
install-sh
push64_relocs.cpp
+2
-0
2 additions, 0 deletions
push64_relocs.cpp
with
2 additions
and
431 deletions
.gitattributes
+
0
−
3
View file @
516ede61
* text=auto !eol
* text=auto !eol
/Makefile.in -text
/SConscript -text
/SConscript -text
/SConstruct -text
/SConstruct -text
/configure.in -text
/install-sh -text
/push64_relocs.cpp -text
/push64_relocs.cpp -text
/push64_relocs.h -text
/push64_relocs.h -text
This diff is collapsed.
Click to expand it.
Makefile.in
deleted
100644 → 0
+
0
−
37
View file @
7478d36d
SRCS
=
push64_relocs.cpp
OBJS
=
$(
subst .cpp,.o,
$(
SRCS
))
EXE
=
push64_relocs.zpi
CXX
=
@CXX@
CXXFLAGS
=
@CXXFLAGS@ @OPTIMIZE@
LDFLAGS
=
@LDFLAGS@
LIBS
=
#${SECURITY_TRANSFORMS_HOME}/tools/transforms/Rewrite_Utility.o
#-lpqxx -lpq -lIRDB-core -lBeaEngine_s_d -ltransform
all
:
$(EXE)
-include
$(OBJS:.o=.d)
$(EXE)
:
$(OBJS)
$(
CXX
)
$(
CXXFLAGS
)
$(
OBJS
)
$(
LDFLAGS
)
$(
LIBS
)
-o
$@
%.o
:
%.cpp
$(
CXX
)
-c
$(
CXXFLAGS
)
$*
.cpp
@
#
@
# build dependencies -- http://scottmcpeak.com/autodepend/autodepend.html
@
#
$(
CXX
)
-MM
$(
CXXFLAGS
)
$*
.cpp
>
$*
.d
@
cp
-f
$*
.d
$*
.d.tmp
@
sed
-e
's/.*://'
-e
's/\\$$//'
<
$*
.d.tmp |
fmt
-1
|
sed
-e
's/^ *//'
-e
's/$$/:/'
>>
$*
.d
@
rm
-f
$*
.d.tmp
install
:
cp
$(
EXE
)
${
ZIPR_INSTALL
}
/plugins
clean
:
rm
-f
$(
OBJS
)
$(
EXE
)
*
.d
*
.o
This diff is collapsed.
Click to expand it.
configure.in
deleted
100644 → 0
+
0
−
66
View file @
7478d36d
AC_INIT(myconfig, version-0.1)
AC_PREFIX_DEFAULT($ZIPR_INSTALL)
AC_PROG_CC
AC_CANONICAL_HOST
AC_ARG_ENABLE([debugging], [ --enable-debugging enable -g when compiling])
AC_ARG_ENABLE([cgc], [ --enable-cgc enable -DCGC when compiling for CGC binaries])
OPTIMIZE="-O3"
if test "$enable_debugging" = yes; then
OPTIMIZE="-g -DDEBUG"
fi
AR=ar
CC=gcc
CXX=g++
CFLAGS="$OPTIMIZE -fPIC -I$SECURITY_TRANSFORMS_HOME/include/elfio/elfio-2.2/ -I$ZIPR_SDK/include -I$SECURITY_TRANSFORMS_HOME/libIRDB/include -I$SECURITY_TRANSFORMS_HOME/beaengine/include -I$SECURITY_TRANSFORMS_HOME/include -I$SECURITY_TRANSFORMS_HOME/tools/transforms"
CXXFLAGS="$CFLAGS"
LD=gcc
LDFLAGS="-shared -o libscfi.zpi"
AS=nasm
ASFLAGS="-felf"
case "$host" in
i686-pc-cygwin)
LDFLAGS="$LDFLAGS -L$ZIPR_INSTALL/lib -lzipr"
;;
*)
;;
esac
if test "$enable_cgc" = yes; then
echo Enabling CGC build.
CFLAGS="$CFLAGS -DCGC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
CXXFLAGS="$CXXFLAGS -DCGC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
ASFLAGS="$ASFLAGS -DCGC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
fi
AC_OUTPUT(Makefile)
AC_SUBST(DIRS)
AC_SUBST(CC)
AC_SUBST(CFLAGS)
AC_SUBST(CXX)
AC_SUBST(CXXFLAGS)
AC_SUBST(LD)
AC_SUBST(LDFLAGS)
AC_SUBST(AS)
AC_SUBST(ASFLAGS)
AC_SUBST(ARCH)
AC_SUBST(AR)
AC_SUBST(OS)
AC_SUBST(LIB)
AC_SUBST(OPTIMIZE, $OPTIMIZE)
echo prefix=$prefix
AC_SUBST(prefix, $prefix)
AC_OUTPUT
This diff is collapsed.
Click to expand it.
install-sh
deleted
100644 → 0
+
0
−
325
View file @
7478d36d
#!/bin/sh
# install - install a program, script, or datafile
scriptversion
=
2004-04-01.17
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit
=
"
${
DOITPROG
-
}
"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog
=
"
${
MVPROG
-mv
}
"
cpprog
=
"
${
CPPROG
-cp
}
"
chmodprog
=
"
${
CHMODPROG
-chmod
}
"
chownprog
=
"
${
CHOWNPROG
-chown
}
"
chgrpprog
=
"
${
CHGRPPROG
-chgrp
}
"
stripprog
=
"
${
STRIPPROG
-strip
}
"
rmprog
=
"
${
RMPROG
-rm
}
"
mkdirprog
=
"
${
MKDIRPROG
-mkdir
}
"
transformbasename
=
transform_arg
=
instcmd
=
"
$mvprog
"
chmodcmd
=
"
$chmodprog
0755"
chowncmd
=
chgrpcmd
=
stripcmd
=
rmcmd
=
"
$rmprog
-f"
mvcmd
=
"
$mvprog
"
src
=
dst
=
dir_arg
=
usage
=
"Usage:
$0
[OPTION]... SRCFILE DSTFILE
or:
$0
[OPTION]... SRCFILES... DIRECTORY
or:
$0
-d DIRECTORIES...
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
In the second, create the directory path DIR.
Options:
-b=TRANSFORMBASENAME
-c copy source (using
$cpprog
) instead of moving (using
$mvprog
).
-d create directories instead of installing files.
-g GROUP
$chgrp
installed files to GROUP.
-m MODE
$chmod
installed files to MODE.
-o USER
$chown
installed files to USER.
-s strip installed files (using
$stripprog
).
-t=TRANSFORM
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while
test
-n
"
$1
"
;
do
case
$1
in
-b
=
*
)
transformbasename
=
`
echo
$1
|
sed
's/-b=//'
`
shift
continue
;;
-c
)
instcmd
=
$cpprog
shift
continue
;;
-d
)
dir_arg
=
true
shift
continue
;;
-g
)
chgrpcmd
=
"
$chgrpprog
$2
"
shift
shift
continue
;;
--help
)
echo
"
$usage
"
;
exit
0
;;
-m
)
chmodcmd
=
"
$chmodprog
$2
"
shift
shift
continue
;;
-o
)
chowncmd
=
"
$chownprog
$2
"
shift
shift
continue
;;
-s
)
stripcmd
=
$stripprog
shift
continue
;;
-t
=
*
)
transformarg
=
`
echo
$1
|
sed
's/-t=//'
`
shift
continue
;;
--version
)
echo
"
$0
$scriptversion
"
;
exit
0
;;
*
)
# When -d is used, all remaining arguments are directories to create.
test
-n
"
$dir_arg
"
&&
break
# Otherwise, the last argument is the destination. Remove it from $@.
for
arg
do
if
test
-n
"
$dstarg
"
;
then
# $@ is not empty: it contains at least $arg.
set
fnord
"
$@
"
"
$dstarg
"
shift
# fnord
fi
shift
# arg
dstarg
=
$arg
done
break
;;
esac
done
if
test
-z
"
$1
"
;
then
if
test
-z
"
$dir_arg
"
;
then
echo
"
$0
: no input file specified."
>
&2
exit
1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit
0
fi
for
src
do
# Protect names starting with `-'.
case
$src
in
-
*
)
src
=
./
$src
;;
esac
if
test
-n
"
$dir_arg
"
;
then
dst
=
$src
src
=
if
test
-d
"
$dst
"
;
then
instcmd
=
:
chmodcmd
=
else
instcmd
=
$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if
test
!
-f
"
$src
"
&&
test
!
-d
"
$src
"
;
then
echo
"
$0
:
$src
does not exist."
>
&2
exit
1
fi
if
test
-z
"
$dstarg
"
;
then
echo
"
$0
: no destination specified."
>
&2
exit
1
fi
dst
=
$dstarg
# Protect names starting with `-'.
case
$dst
in
-
*
)
dst
=
./
$dst
;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if
test
-d
"
$dst
"
;
then
dst
=
$dst
/
`
basename
"
$src
"
`
fi
fi
# This sed command emulates the dirname command.
dstdir
=
`
echo
"
$dst
"
|
sed
-e
's,[^/]*$,,;s,/$,,;s,^$,.,'
`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if
test
!
-d
"
$dstdir
"
;
then
defaultIFS
=
'
'
IFS
=
"
${
IFS
-
$defaultIFS
}
"
oIFS
=
$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS
=
'%'
set
-
`
echo
"
$dstdir
"
|
sed
-e
's@/@%@g'
-e
's@^%@/@'
`
IFS
=
$oIFS
pathcomp
=
while
test
$#
-ne
0
;
do
pathcomp
=
$pathcomp$1
shift
if
test
!
-d
"
$pathcomp
"
;
then
$mkdirprog
"
$pathcomp
"
||
lasterr
=
$?
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test
!
-d
"
$pathcomp
"
&&
{
(
exit
${
lasterr
-1
}
)
;
exit
;
}
fi
pathcomp
=
$pathcomp
/
done
fi
if
test
-n
"
$dir_arg
"
;
then
$doit
$instcmd
"
$dst
"
\
&&
{
test
-z
"
$chowncmd
"
||
$doit
$chowncmd
"
$dst
"
;
}
\
&&
{
test
-z
"
$chgrpcmd
"
||
$doit
$chgrpcmd
"
$dst
"
;
}
\
&&
{
test
-z
"
$stripcmd
"
||
$doit
$stripcmd
"
$dst
"
;
}
\
&&
{
test
-z
"
$chmodcmd
"
||
$doit
$chmodcmd
"
$dst
"
;
}
else
# If we're going to rename the final executable, determine the name now.
if
test
-z
"
$transformarg
"
;
then
dstfile
=
`
basename
"
$dst
"
`
else
dstfile
=
`
basename
"
$dst
"
$transformbasename
\
|
sed
$transformarg
`
$transformbasename
fi
# don't allow the sed command to completely eliminate the filename.
test
-z
"
$dstfile
"
&&
dstfile
=
`
basename
"
$dst
"
`
# Make a couple of temp file names in the proper directory.
dsttmp
=
$dstdir
/_inst.
$$
_
rmtmp
=
$dstdir
/_rm.
$$
_
# Trap to clean up those temp files at exit.
trap
'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status'
0
trap
'(exit $?); exit'
1 2 13 15
# Move or copy the file name to the temp name
$doit
$instcmd
"
$src
"
"
$dsttmp
"
&&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
#
{
test
-z
"
$chowncmd
"
||
$doit
$chowncmd
"
$dsttmp
"
;
}
\
&&
{
test
-z
"
$chgrpcmd
"
||
$doit
$chgrpcmd
"
$dsttmp
"
;
}
\
&&
{
test
-z
"
$stripcmd
"
||
$doit
$stripcmd
"
$dsttmp
"
;
}
\
&&
{
test
-z
"
$chmodcmd
"
||
$doit
$chmodcmd
"
$dsttmp
"
;
}
&&
# Now rename the file to the real destination.
{
$doit
$mvcmd
-f
"
$dsttmp
"
"
$dstdir
/
$dstfile
"
2>/dev/null
\
||
{
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if
test
-f
"
$dstdir
/
$dstfile
"
;
then
$doit
$rmcmd
-f
"
$dstdir
/
$dstfile
"
2>/dev/null
\
||
$doit
$mvcmd
-f
"
$dstdir
/
$dstfile
"
"
$rmtmp
"
2>/dev/null
\
||
{
echo
"
$0
: cannot unlink or rename
$dstdir
/
$dstfile
"
>
&2
(
exit
1
)
;
exit
}
else
:
fi
}
&&
# Now rename the file to the real destination.
$doit
$mvcmd
"
$dsttmp
"
"
$dstdir
/
$dstfile
"
}
}
fi
||
{
(
exit
1
)
;
exit
;
}
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(
exit
0
)
;
exit
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
This diff is collapsed.
Click to expand it.
push64_relocs.cpp
+
2
−
0
View file @
516ede61
...
@@ -290,6 +290,8 @@ void Push64Relocs_t::UpdatePush64Adds()
...
@@ -290,6 +290,8 @@ void Push64Relocs_t::UpdatePush64Adds()
}
}
m_memory_space
.
PlopBytes
(
add_addr
+
4
,
(
const
char
*
)
&
relocated_value
,
4
);
m_memory_space
.
PlopBytes
(
add_addr
+
4
,
(
const
char
*
)
&
relocated_value
,
4
);
}
}
// handle basic pcrel relocations.
// zipr_unpin_plugin handles pcrel + WRT
else
if
(
reloc
=
FindPcrelRelocation
(
insn
))
else
if
(
reloc
=
FindPcrelRelocation
(
insn
))
{
{
// would consider updating this if statement to be a function call for simplicity/readability.
// would consider updating this if statement to be a function call for simplicity/readability.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment