vlc | branch: master | Rafaël Carré <[email protected]> | Sat May 18 13:05:17 2013 +0200| [a42bb441656b14f088b61d7f86a77a3412f6d792] | committer: Rafaël Carré
Win32: use ld options rather than a perl script to set PE flags > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a42bb441656b14f088b61d7f86a77a3412f6d792 --- Makefile.am | 1 - configure.ac | 3 ++ extras/package/win32/package.mak | 3 -- extras/package/win32/peflags.pl | 72 -------------------------------------- 4 files changed, 3 insertions(+), 76 deletions(-) diff --git a/Makefile.am b/Makefile.am index ff0f1f5..b9d59d1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,7 +16,6 @@ SUBDIRS += test EXTRA_DIST = \ extras/package/win32/vlc.exe.manifest \ extras/package/win32/libvlc.dll.manifest \ - extras/package/win32/peflags.pl \ extras/package/win32/change-contribs-directory.sh \ extras/package/win32/configure.sh \ extras/package/symbian/configure.sh \ diff --git a/configure.ac b/configure.ac index 567b01a..4a2b7f9 100644 --- a/configure.ac +++ b/configure.ac @@ -227,6 +227,9 @@ case "${host_os}" in esac if test "${SYS}" = "mingw32"; then + # DEP, ASLR, NO SEH + LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" + VLC_ADD_LIBS([libvlccore],[-lwinmm]) VLC_ADD_LDFLAGS([vlc],[-mwindows]) VLC_ADD_LIBS([win32text],[-lgdi32]) diff --git a/extras/package/win32/package.mak b/extras/package/win32/package.mak index 8710e6f..796f30f 100644 --- a/extras/package/win32/package.mak +++ b/extras/package/win32/package.mak @@ -85,9 +85,6 @@ endif # Convert to DOS line endings find $(win32_destdir) -type f \( -name "*xml" -or -name "*html" -or -name '*js' -or -name '*css' -or -name '*hosts' -or -iname '*txt' -or -name '*.cfg' -or -name '*.lua' \) -exec $(U2D) {} \; -# Enable DEP and ASLR for all the binaries - find $(win32_destdir) -type f \( -name '*$(LIBEXT)' -print -o -name '*$(EXEEXT)' -print \) -exec $(top_srcdir)/extras/package/win32/peflags.pl {} \; - # Remove cruft find $(win32_destdir)/plugins/ -type f \( -name '*.a' -or -name '*.la' \) -exec rm -rvf {} \; diff --git a/extras/package/win32/peflags.pl b/extras/package/win32/peflags.pl deleted file mode 100755 index 62ae010..0000000 --- a/extras/package/win32/peflags.pl +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/perl -# Copyright © 2011 Rafaël Carré <funman at videolanorg> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. -# - -use warnings; - -if ($#ARGV < 0 || $#ARGV > 1 || ($#ARGV == 1 && $ARGV[0] ne "-AppContainer")) { - die "Usage: peflags.pl [-AppContainer] file"; -} -my $appContainer = 0; -my $file = $ARGV[0]; -if ($#ARGV == 1 && ($ARGV[0] eq "-AppContainer")) { - $appContainer = 1; - $file = $ARGV[1]; -} - -open F, "+<$file" - or die "Can't open `$file'"; -binmode F; - -seek F, 0x3c, 0; -my $offset = get_le(4); -seek F, $offset, 0; - -if (get_le(4) != 0x00004550) { # IMAGE_NT_SIGNATURE - die "Not a NT executable"; -} - -seek F, 20 + 70, 1; - -my $flags = get_le(2); -seek F, -2, 1; - -$flags |= 0x40; # Dynamic Base -$flags |= 0x100; # NX Compat -$flags |= 0x400; # NO SEH -if ($appContainer) { - $flags |= 0x1000; # App Container -} - -printf F "%c%c", $flags & 0xff,($flags >> 8) & 0xff; - -close F; - -sub get_le { - my $bytes; - read F, $bytes, $_[0]; - if (length $bytes ne $_[0]) { - die "Couldn't read"; - } - - my $ret = 0; - my @array = split //, $bytes; - for (my $shift = 0, my $i = 0; $i < $_[0]; $i++, $shift += 8) { - $ret += (ord $array[$i]) << $shift; - } - return $ret; -} _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
