From e581419cb90f24bf64be839c01e70217bc58018d Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 4 Mar 2013 10:59:02 +0000 Subject: [PATCH] * Makefile.am (inilint_extras): Remove autoload.c. (setup_SOURCES): Ditto. (setup_LDADD): Add ntdll and wininet. (autoload.o): Remove rule. * autoload.c: Remove file. --- ChangeLog | 8 ++++ Makefile.am | 9 +---- autoload.c | 109 ---------------------------------------------------- 3 files changed, 10 insertions(+), 116 deletions(-) delete mode 100644 autoload.c diff --git a/ChangeLog b/ChangeLog index f80c6bf8..6169cfac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2013-03-04 Yaakov Selkowitz + + * Makefile.am (inilint_extras): Remove autoload.c. + (setup_SOURCES): Ditto. + (setup_LDADD): Add ntdll and wininet. + (autoload.o): Remove rule. + * autoload.c: Remove file. + 2013-03-03 Yaakov Selkowitz * Makefile.am (res.o): Add rule to force rebuild upon change diff --git a/Makefile.am b/Makefile.am index 33e7dfad..243fe29f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -64,7 +64,6 @@ CLEANFILES = setup_version.c if MINGWTARGET inilint_extras = \ - autoload.c \ mklink2.cc else inilint_extras = @@ -105,8 +104,8 @@ inilint_SOURCES = \ regex_SOURCES = regex/regex.c setup_LDADD = \ - libgetopt++/libgetopt++.la -lgcrypt -lgpg-error \ - -lshlwapi -lcomctl32 -lole32 -lwsock32 -lnetapi32 -lpsapi -luuid -llzma -lbz2 -lz + libgetopt++/libgetopt++.la -lgcrypt -lgpg-error -llzma -lbz2 -lz \ + -lshlwapi -lcomctl32 -lole32 -lwsock32 -lpsapi -luuid -lntdll -lwininet setup_LDFLAGS = -mwindows -Wc,-static -static-libtool-libs setup_SOURCES = \ AntiVirus.cc \ @@ -116,7 +115,6 @@ setup_SOURCES = \ archive_tar.cc \ archive_tar.h \ archive_tar_file.cc \ - autoload.c \ choose.cc \ choose.h \ compress.cc \ @@ -278,9 +276,6 @@ setup_SOURCES = \ csu_util/version_compare.cc \ csu_util/version_compare.h -# autoload code does not optimize properly with gcc-4.x -autoload.o: CFLAGS += -O0 - VER := $(shell sed -ne 's/^\$$Revi[s]ion: *\([^ ]*\) *$$.*/\1/p' \ $(srcdir)/ChangeLog) diff --git a/autoload.c b/autoload.c deleted file mode 100644 index d1779ae8..00000000 --- a/autoload.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2000, Red Hat, Inc. - * - * 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. - * - * A copy of the GNU General Public License can be found at - * http://www.gnu.org/ - * - * Written by DJ Delorie - * - */ -#if 0 -static const char *cvsid = "\n%%% $Id$\n"; -#endif - -#define WIN32_LEAN_AND_MEAN -#define DECLSPEC_IMPORT -#include - -typedef struct { - const char *name; - HINSTANCE handle; -} DllInfo; - -#define DLL(n) __attribute__ ((used)) static DllInfo n ## _info __asm__ (#n "_info") = { #n, 0} - -#define Auto(dll, func, size) \ - __asm__ ("\t.section .autoload_text,\"wx\""); \ - __asm__ ("\t.global\t_" #func "@" #size); \ - __asm__ ("_" #func "@" #size ":"); \ - __asm__ ("\tcall\tautoload_common"); \ - __asm__ ("\t.long\t" #dll "_info"); \ - __asm__ ("\t.ascii\t\"" #func "\\0\"") - -DLL (wininet); - -Auto (wininet, InternetAttemptConnect, 4); -Auto (wininet, InternetCloseHandle, 4); -Auto (wininet, InternetGetLastResponseInfoA, 12); -Auto (wininet, InternetOpenA, 20); -Auto (wininet, InternetOpenUrlA, 24); -Auto (wininet, InternetReadFile, 16); -Auto (wininet, InternetSetOptionA, 16); -Auto (wininet, InternetQueryOptionA, 16); -Auto (wininet, HttpQueryInfoA, 20); -Auto (wininet, HttpSendRequestA, 20); - -DLL (advapi32); - -Auto (advapi32, AddAccessAllowedAce, 16); -Auto (advapi32, AllocateAndInitializeSid, 44); -Auto (advapi32, FreeSid, 4); -Auto (advapi32, InitializeAcl, 12); -Auto (advapi32, OpenProcessToken, 12); -Auto (advapi32, SetTokenInformation, 16); -Auto (advapi32, OpenSCManagerA, 16); -Auto (advapi32, CloseServiceHandle, 4); -Auto (advapi32, OpenServiceA, 16); -Auto (advapi32, QueryServiceStatus, 8); -Auto (advapi32, StartServiceA, 16); - -DLL (ntdll); - -Auto (ntdll, NtCreateFile, 44); -Auto (ntdll, NtOpenFile, 24); -Auto (ntdll, NtClose, 4); -Auto (ntdll, NtQueryAttributesFile, 8); -Auto (ntdll, NtQueryInformationFile, 20); -Auto (ntdll, NtSetInformationFile, 20); -Auto (ntdll, RtlInitUnicodeString, 8); -Auto (ntdll, RtlNtStatusToDosError, 4); - -typedef struct { - DllInfo *dll; - char name[100]; -} AutoEntry; - -__asm__ ("\t.text"); - -__attribute__ ((used)) static void autoload_common (int x) __asm__ ("autoload_common"); - -static void -autoload_common (int x) -{ - int fp, rel; - unsigned char *proc; - HINSTANCE h; - AutoEntry *a; - - a = *(AutoEntry **)(&x - 1); - if (a->dll->handle == 0) - { - h = LoadLibrary (a->dll->name); - a->dll->handle = h; - } - fp = (int) GetProcAddress (a->dll->handle, a->name); - proc = ((unsigned char *)a) - 5; - rel = fp - (int)(a); /* now it's a relative call */ - *proc++ = 0xe9; /* jump near 32-bit relative */ - *proc++ = rel; - *proc++ = rel>>8; - *proc++ = rel>>16; - *proc++ = rel>>24; - - *(int *)(&x-1) = (int)proc-5; -} -- 2.43.5