On Thu, 2010-07-22 at 22:50 -0400, Charles Wilson wrote:
> As noted here:
> http://cygwin.com/ml/cygwin-apps/2010-07/msg00175.html
>
> I was able to build setup.exe using i686-pc-mingw32-gcc and only
> setup-gcc45.patch (that is, without setup-no-autoload.patch) and it worked.
>
> The key difference, I think, is that all of the
> mingw-{zlib,bzip2,xz,gpg-error,gcrypt} packages, and setup itself were
> compiled with -mms-bitfields.
No, that's not it, I was able to get crashes -mms-bitfields as well.
Besides, it doesn't make sense that autoload.c would work any better
with or without -mms-bitfields, as long as it is compatible with the
rest of the mingw stack. That's not to say that we shouldn't build
mingw-* with -mms-bitfields, but that's tangential to this issue.
The problem is with optimization in autoload.c. By default, configure
sets C[XX]FLAGS='-g -O2', and autoload.c is not compatible with that. I
even tried -O1 and setup.exe didn't work, but it does work with -O0
(even just for autoload.c).
I have attached the output of i686-pc-mingw-gcc -S with -O0, -O1, and
-O2; hopefully someone who understands this can propose a fix for
autoload.c (or gcc, depending on where the bug is). In the meantime,
the attached patch for CVS HEAD simply disables optimization for
autoload.c only, allowing setup.exe to work even with a default
configure (tested with my i686-pc-mingw32-gcc 4.5.20100715).
Yaakov
.file "autoload.c"
.section .rdata,"dr"
LC0:
.ascii "wininet\0"
.data
.align 4
wininet_info:
.long LC0
.long 0
/APP
.section .autoload_text,"wx"
.global _internetattemptconn...@4
_internetattemptconn...@4:
call autoload_common
.long wininet_info
.ascii "InternetAttemptConnect\0"
.section .autoload_text,"wx"
.global _internetclosehan...@4
_internetclosehan...@4:
call autoload_common
.long wininet_info
.ascii "InternetCloseHandle\0"
.section .autoload_text,"wx"
.global _internetgetlastresponsein...@12
_internetgetlastresponsein...@12:
call autoload_common
.long wininet_info
.ascii "InternetGetLastResponseInfoA\0"
.section .autoload_text,"wx"
.global _internetop...@20
_internetop...@20:
call autoload_common
.long wininet_info
.ascii "InternetOpenA\0"
.section .autoload_text,"wx"
.global _internetopenu...@24
_internetopenu...@24:
call autoload_common
.long wininet_info
.ascii "InternetOpenUrlA\0"
.section .autoload_text,"wx"
.global _internetreadf...@16
_internetreadf...@16:
call autoload_common
.long wininet_info
.ascii "InternetReadFile\0"
.section .autoload_text,"wx"
.global _internetsetopti...@16
_internetsetopti...@16:
call autoload_common
.long wininet_info
.ascii "InternetSetOptionA\0"
.section .autoload_text,"wx"
.global _internetqueryopti...@16
_internetqueryopti...@16:
call autoload_common
.long wininet_info
.ascii "InternetQueryOptionA\0"
.section .autoload_text,"wx"
.global _httpqueryin...@20
_httpqueryin...@20:
call autoload_common
.long wininet_info
.ascii "HttpQueryInfoA\0"
.section .autoload_text,"wx"
.global _httpsendreque...@20
_httpsendreque...@20:
call autoload_common
.long wininet_info
.ascii "HttpSendRequestA\0"
/NO_APP
.section .rdata,"dr"
LC1:
.ascii "advapi32\0"
.data
.align 4
advapi32_info:
.long LC1
.long 0
/APP
.section .autoload_text,"wx"
.global _addaccessallowed...@16
_addaccessallowed...@16:
call autoload_common
.long advapi32_info
.ascii "AddAccessAllowedAce\0"
.section .autoload_text,"wx"
.global _allocateandinitialize...@44
_allocateandinitialize...@44:
call autoload_common
.long advapi32_info
.ascii "AllocateAndInitializeSid\0"
.section .autoload_text,"wx"
.global _free...@4
_free...@4:
call autoload_common
.long advapi32_info
.ascii "FreeSid\0"
.section .autoload_text,"wx"
.global _initialize...@12
_initialize...@12:
call autoload_common
.long advapi32_info
.ascii "InitializeAcl\0"
.section .autoload_text,"wx"
.global _openprocessto...@12
_openprocessto...@12:
call autoload_common
.long advapi32_info
.ascii "OpenProcessToken\0"
.section .autoload_text,"wx"
.global _settokeninformat...@16
_settokeninformat...@16:
call autoload_common
.long advapi32_info
.ascii "SetTokenInformation\0"
.section .autoload_text,"wx"
.global _openscmanag...@16
_openscmanag...@16:
call autoload_common
.long advapi32_info
.ascii "OpenSCManagerA\0"
.section .autoload_text,"wx"
.global _closeservicehan...@4
_closeservicehan...@4:
call autoload_common
.long advapi32_info
.ascii "CloseServiceHandle\0"
.section .autoload_text,"wx"
.global _openservi...@16
_openservi...@16:
call autoload_common
.long advapi32_info
.ascii "OpenServiceA\0"
.section .autoload_text,"wx"
.global _queryservicesta...@8
_queryservicesta...@8:
call autoload_common
.long advapi32_info
.ascii "QueryServiceStatus\0"
.section .autoload_text,"wx"
.global _startservi...@16
_startservi...@16:
call autoload_common
.long advapi32_info
.ascii "StartServiceA\0"
/NO_APP
.section .rdata,"dr"
LC2:
.ascii "ntdll\0"
.data
.align 4
ntdll_info:
.long LC2
.long 0
/APP
.section .autoload_text,"wx"
.global _ntcreatef...@44
_ntcreatef...@44:
call autoload_common
.long ntdll_info
.ascii "NtCreateFile\0"
.section .autoload_text,"wx"
.global _ntopenf...@24
_ntopenf...@24:
call autoload_common
.long ntdll_info
.ascii "NtOpenFile\0"
.section .autoload_text,"wx"
.global _ntcl...@4
_ntcl...@4:
call autoload_common
.long ntdll_info
.ascii "NtClose\0"
.section .autoload_text,"wx"
.global _ntqueryattributesf...@8
_ntqueryattributesf...@8:
call autoload_common
.long ntdll_info
.ascii "NtQueryAttributesFile\0"
.section .autoload_text,"wx"
.global _ntqueryinformationf...@20
_ntqueryinformationf...@20:
call autoload_common
.long ntdll_info
.ascii "NtQueryInformationFile\0"
.section .autoload_text,"wx"
.global _ntsetinformationf...@20
_ntsetinformationf...@20:
call autoload_common
.long ntdll_info
.ascii "NtSetInformationFile\0"
.section .autoload_text,"wx"
.global _rtlinitunicodestr...@8
_rtlinitunicodestr...@8:
call autoload_common
.long ntdll_info
.ascii "RtlInitUnicodeString\0"
.section .autoload_text,"wx"
.global _rtlntstatustodoser...@4
_rtlntstatustodoser...@4:
call autoload_common
.long ntdll_info
.ascii "RtlNtStatusToDosError\0"
.text
/NO_APP
.text
.def autoload_common; .scl 3; .type 32; .endef
autoload_common:
pushl %ebp
movl %esp, %ebp
subl $56, %esp
leal 8(%ebp), %eax
subl $4, %eax
movl (%eax), %eax
movl %eax, -12(%ebp)
movl -12(%ebp), %eax
movl (%eax), %eax
movl 4(%eax), %eax
testl %eax, %eax
jne L2
movl -12(%ebp), %eax
movl (%eax), %eax
movl (%eax), %eax
movl %eax, (%esp)
call _loadlibra...@4
subl $4, %esp
movl %eax, -16(%ebp)
movl -12(%ebp), %eax
movl (%eax), %eax
movl -16(%ebp), %edx
movl %edx, 4(%eax)
L2:
movl -12(%ebp), %eax
leal 4(%eax), %edx
movl -12(%ebp), %eax
movl (%eax), %eax
movl 4(%eax), %eax
movl %edx, 4(%esp)
movl %eax, (%esp)
call _getprocaddr...@8
subl $8, %esp
movl %eax, -20(%ebp)
movl -12(%ebp), %eax
subl $5, %eax
movl %eax, -24(%ebp)
movl -12(%ebp), %eax
movl -20(%ebp), %edx
movl %edx, %ecx
subl %eax, %ecx
movl %ecx, %eax
movl %eax, -28(%ebp)
movl -24(%ebp), %eax
movb $-23, (%eax)
addl $1, -24(%ebp)
movl -28(%ebp), %eax
movl %eax, %edx
movl -24(%ebp), %eax
movb %dl, (%eax)
addl $1, -24(%ebp)
movl -28(%ebp), %eax
sarl $8, %eax
movl %eax, %edx
movl -24(%ebp), %eax
movb %dl, (%eax)
addl $1, -24(%ebp)
movl -28(%ebp), %eax
sarl $16, %eax
movl %eax, %edx
movl -24(%ebp), %eax
movb %dl, (%eax)
addl $1, -24(%ebp)
movl -28(%ebp), %eax
sarl $24, %eax
movl %eax, %edx
movl -24(%ebp), %eax
movb %dl, (%eax)
addl $1, -24(%ebp)
leal 4(%ebp), %eax
movl -24(%ebp), %edx
subl $5, %edx
movl %edx, (%eax)
leave
ret
.def _loadlibra...@4; .scl 2; .type 32; .endef
.def _getprocaddr...@8; .scl 2; .type 32; .endef
.file "autoload.c"
/APP
.section .autoload_text,"wx"
.global _internetattemptconn...@4
_internetattemptconn...@4:
call autoload_common
.long wininet_info
.ascii "InternetAttemptConnect\0"
.section .autoload_text,"wx"
.global _internetclosehan...@4
_internetclosehan...@4:
call autoload_common
.long wininet_info
.ascii "InternetCloseHandle\0"
.section .autoload_text,"wx"
.global _internetgetlastresponsein...@12
_internetgetlastresponsein...@12:
call autoload_common
.long wininet_info
.ascii "InternetGetLastResponseInfoA\0"
.section .autoload_text,"wx"
.global _internetop...@20
_internetop...@20:
call autoload_common
.long wininet_info
.ascii "InternetOpenA\0"
.section .autoload_text,"wx"
.global _internetopenu...@24
_internetopenu...@24:
call autoload_common
.long wininet_info
.ascii "InternetOpenUrlA\0"
.section .autoload_text,"wx"
.global _internetreadf...@16
_internetreadf...@16:
call autoload_common
.long wininet_info
.ascii "InternetReadFile\0"
.section .autoload_text,"wx"
.global _internetsetopti...@16
_internetsetopti...@16:
call autoload_common
.long wininet_info
.ascii "InternetSetOptionA\0"
.section .autoload_text,"wx"
.global _internetqueryopti...@16
_internetqueryopti...@16:
call autoload_common
.long wininet_info
.ascii "InternetQueryOptionA\0"
.section .autoload_text,"wx"
.global _httpqueryin...@20
_httpqueryin...@20:
call autoload_common
.long wininet_info
.ascii "HttpQueryInfoA\0"
.section .autoload_text,"wx"
.global _httpsendreque...@20
_httpsendreque...@20:
call autoload_common
.long wininet_info
.ascii "HttpSendRequestA\0"
.section .autoload_text,"wx"
.global _addaccessallowed...@16
_addaccessallowed...@16:
call autoload_common
.long advapi32_info
.ascii "AddAccessAllowedAce\0"
.section .autoload_text,"wx"
.global _allocateandinitialize...@44
_allocateandinitialize...@44:
call autoload_common
.long advapi32_info
.ascii "AllocateAndInitializeSid\0"
.section .autoload_text,"wx"
.global _free...@4
_free...@4:
call autoload_common
.long advapi32_info
.ascii "FreeSid\0"
.section .autoload_text,"wx"
.global _initialize...@12
_initialize...@12:
call autoload_common
.long advapi32_info
.ascii "InitializeAcl\0"
.section .autoload_text,"wx"
.global _openprocessto...@12
_openprocessto...@12:
call autoload_common
.long advapi32_info
.ascii "OpenProcessToken\0"
.section .autoload_text,"wx"
.global _settokeninformat...@16
_settokeninformat...@16:
call autoload_common
.long advapi32_info
.ascii "SetTokenInformation\0"
.section .autoload_text,"wx"
.global _openscmanag...@16
_openscmanag...@16:
call autoload_common
.long advapi32_info
.ascii "OpenSCManagerA\0"
.section .autoload_text,"wx"
.global _closeservicehan...@4
_closeservicehan...@4:
call autoload_common
.long advapi32_info
.ascii "CloseServiceHandle\0"
.section .autoload_text,"wx"
.global _openservi...@16
_openservi...@16:
call autoload_common
.long advapi32_info
.ascii "OpenServiceA\0"
.section .autoload_text,"wx"
.global _queryservicesta...@8
_queryservicesta...@8:
call autoload_common
.long advapi32_info
.ascii "QueryServiceStatus\0"
.section .autoload_text,"wx"
.global _startservi...@16
_startservi...@16:
call autoload_common
.long advapi32_info
.ascii "StartServiceA\0"
.section .autoload_text,"wx"
.global _ntcreatef...@44
_ntcreatef...@44:
call autoload_common
.long ntdll_info
.ascii "NtCreateFile\0"
.section .autoload_text,"wx"
.global _ntopenf...@24
_ntopenf...@24:
call autoload_common
.long ntdll_info
.ascii "NtOpenFile\0"
.section .autoload_text,"wx"
.global _ntcl...@4
_ntcl...@4:
call autoload_common
.long ntdll_info
.ascii "NtClose\0"
.section .autoload_text,"wx"
.global _ntqueryattributesf...@8
_ntqueryattributesf...@8:
call autoload_common
.long ntdll_info
.ascii "NtQueryAttributesFile\0"
.section .autoload_text,"wx"
.global _ntqueryinformationf...@20
_ntqueryinformationf...@20:
call autoload_common
.long ntdll_info
.ascii "NtQueryInformationFile\0"
.section .autoload_text,"wx"
.global _ntsetinformationf...@20
_ntsetinformationf...@20:
call autoload_common
.long ntdll_info
.ascii "NtSetInformationFile\0"
.section .autoload_text,"wx"
.global _rtlinitunicodestr...@8
_rtlinitunicodestr...@8:
call autoload_common
.long ntdll_info
.ascii "RtlInitUnicodeString\0"
.section .autoload_text,"wx"
.global _rtlntstatustodoser...@4
_rtlntstatustodoser...@4:
call autoload_common
.long ntdll_info
.ascii "RtlNtStatusToDosError\0"
.text
/NO_APP
.text
.def autoload_common; .scl 3; .type 32; .endef
autoload_common:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $20, %esp
movl 4(%ebp), %ebx
movl (%ebx), %eax
cmpl $0, 4(%eax)
jne L2
movl (%eax), %eax
movl %eax, (%esp)
call _loadlibra...@4
subl $4, %esp
movl (%ebx), %edx
movl %eax, 4(%edx)
L2:
leal 4(%ebx), %eax
movl %eax, 4(%esp)
movl (%ebx), %eax
movl 4(%eax), %eax
movl %eax, (%esp)
call _getprocaddr...@8
subl $8, %esp
subl %ebx, %eax
movb $-23, -5(%ebx)
movb %al, -4(%ebx)
movl %eax, %edx
sarl $8, %edx
movb %dl, -3(%ebx)
movl %eax, %edx
sarl $16, %edx
movb %dl, -2(%ebx)
sarl $24, %eax
movb %al, -1(%ebx)
movl -4(%ebp), %ebx
leave
ret
.section .rdata,"dr"
LC0:
.ascii "ntdll\0"
.data
.align 4
ntdll_info:
.long LC0
.long 0
.section .rdata,"dr"
LC1:
.ascii "advapi32\0"
.data
.align 4
advapi32_info:
.long LC1
.long 0
.section .rdata,"dr"
LC2:
.ascii "wininet\0"
.data
.align 4
wininet_info:
.long LC2
.long 0
.def _loadlibra...@4; .scl 2; .type 32; .endef
.def _getprocaddr...@8; .scl 2; .type 32; .endef
.file "autoload.c"
/APP
.section .autoload_text,"wx"
.global _internetattemptconn...@4
_internetattemptconn...@4:
call autoload_common
.long wininet_info
.ascii "InternetAttemptConnect\0"
.section .autoload_text,"wx"
.global _internetclosehan...@4
_internetclosehan...@4:
call autoload_common
.long wininet_info
.ascii "InternetCloseHandle\0"
.section .autoload_text,"wx"
.global _internetgetlastresponsein...@12
_internetgetlastresponsein...@12:
call autoload_common
.long wininet_info
.ascii "InternetGetLastResponseInfoA\0"
.section .autoload_text,"wx"
.global _internetop...@20
_internetop...@20:
call autoload_common
.long wininet_info
.ascii "InternetOpenA\0"
.section .autoload_text,"wx"
.global _internetopenu...@24
_internetopenu...@24:
call autoload_common
.long wininet_info
.ascii "InternetOpenUrlA\0"
.section .autoload_text,"wx"
.global _internetreadf...@16
_internetreadf...@16:
call autoload_common
.long wininet_info
.ascii "InternetReadFile\0"
.section .autoload_text,"wx"
.global _internetsetopti...@16
_internetsetopti...@16:
call autoload_common
.long wininet_info
.ascii "InternetSetOptionA\0"
.section .autoload_text,"wx"
.global _internetqueryopti...@16
_internetqueryopti...@16:
call autoload_common
.long wininet_info
.ascii "InternetQueryOptionA\0"
.section .autoload_text,"wx"
.global _httpqueryin...@20
_httpqueryin...@20:
call autoload_common
.long wininet_info
.ascii "HttpQueryInfoA\0"
.section .autoload_text,"wx"
.global _httpsendreque...@20
_httpsendreque...@20:
call autoload_common
.long wininet_info
.ascii "HttpSendRequestA\0"
.section .autoload_text,"wx"
.global _addaccessallowed...@16
_addaccessallowed...@16:
call autoload_common
.long advapi32_info
.ascii "AddAccessAllowedAce\0"
.section .autoload_text,"wx"
.global _allocateandinitialize...@44
_allocateandinitialize...@44:
call autoload_common
.long advapi32_info
.ascii "AllocateAndInitializeSid\0"
.section .autoload_text,"wx"
.global _free...@4
_free...@4:
call autoload_common
.long advapi32_info
.ascii "FreeSid\0"
.section .autoload_text,"wx"
.global _initialize...@12
_initialize...@12:
call autoload_common
.long advapi32_info
.ascii "InitializeAcl\0"
.section .autoload_text,"wx"
.global _openprocessto...@12
_openprocessto...@12:
call autoload_common
.long advapi32_info
.ascii "OpenProcessToken\0"
.section .autoload_text,"wx"
.global _settokeninformat...@16
_settokeninformat...@16:
call autoload_common
.long advapi32_info
.ascii "SetTokenInformation\0"
.section .autoload_text,"wx"
.global _openscmanag...@16
_openscmanag...@16:
call autoload_common
.long advapi32_info
.ascii "OpenSCManagerA\0"
.section .autoload_text,"wx"
.global _closeservicehan...@4
_closeservicehan...@4:
call autoload_common
.long advapi32_info
.ascii "CloseServiceHandle\0"
.section .autoload_text,"wx"
.global _openservi...@16
_openservi...@16:
call autoload_common
.long advapi32_info
.ascii "OpenServiceA\0"
.section .autoload_text,"wx"
.global _queryservicesta...@8
_queryservicesta...@8:
call autoload_common
.long advapi32_info
.ascii "QueryServiceStatus\0"
.section .autoload_text,"wx"
.global _startservi...@16
_startservi...@16:
call autoload_common
.long advapi32_info
.ascii "StartServiceA\0"
.section .autoload_text,"wx"
.global _ntcreatef...@44
_ntcreatef...@44:
call autoload_common
.long ntdll_info
.ascii "NtCreateFile\0"
.section .autoload_text,"wx"
.global _ntopenf...@24
_ntopenf...@24:
call autoload_common
.long ntdll_info
.ascii "NtOpenFile\0"
.section .autoload_text,"wx"
.global _ntcl...@4
_ntcl...@4:
call autoload_common
.long ntdll_info
.ascii "NtClose\0"
.section .autoload_text,"wx"
.global _ntqueryattributesf...@8
_ntqueryattributesf...@8:
call autoload_common
.long ntdll_info
.ascii "NtQueryAttributesFile\0"
.section .autoload_text,"wx"
.global _ntqueryinformationf...@20
_ntqueryinformationf...@20:
call autoload_common
.long ntdll_info
.ascii "NtQueryInformationFile\0"
.section .autoload_text,"wx"
.global _ntsetinformationf...@20
_ntsetinformationf...@20:
call autoload_common
.long ntdll_info
.ascii "NtSetInformationFile\0"
.section .autoload_text,"wx"
.global _rtlinitunicodestr...@8
_rtlinitunicodestr...@8:
call autoload_common
.long ntdll_info
.ascii "RtlInitUnicodeString\0"
.section .autoload_text,"wx"
.global _rtlntstatustodoser...@4
_rtlntstatustodoser...@4:
call autoload_common
.long ntdll_info
.ascii "RtlNtStatusToDosError\0"
.text
/NO_APP
.text
.p2align 4,,15
.def autoload_common; .scl 3; .type 32; .endef
autoload_common:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $20, %esp
movl 4(%ebp), %ebx
movl (%ebx), %edx
movl 4(%edx), %eax
testl %eax, %eax
je L4
L2:
leal 4(%ebx), %edx
movl %edx, 4(%esp)
movl %eax, (%esp)
call _getprocaddr...@8
movb $-23, -5(%ebx)
subl %ebx, %eax
subl $8, %esp
movl %eax, %edx
sarl $8, %edx
movb %dl, -3(%ebx)
movl %eax, %edx
movb %al, -4(%ebx)
sarl $16, %edx
sarl $24, %eax
movb %dl, -2(%ebx)
movb %al, -1(%ebx)
movl -4(%ebp), %ebx
leave
ret
.p2align 4,,7
L4:
movl (%edx), %eax
movl %eax, (%esp)
call _loadlibra...@4
movl (%ebx), %edx
subl $4, %esp
movl %eax, 4(%edx)
jmp L2
.section .rdata,"dr"
LC0:
.ascii "ntdll\0"
.data
.align 4
ntdll_info:
.long LC0
.long 0
.section .rdata,"dr"
LC1:
.ascii "advapi32\0"
.data
.align 4
advapi32_info:
.long LC1
.long 0
.section .rdata,"dr"
LC2:
.ascii "wininet\0"
.data
.align 4
wininet_info:
.long LC2
.long 0
.def _getprocaddr...@8; .scl 2; .type 32; .endef
.def _loadlibra...@4; .scl 2; .type 32; .endef
2010-07-23 Yaakov Selkowitz <[email protected]>
Fix compatibility with GCC 4.5.
* Makefile.am (setup_LDFLAGS): Pass -static to compiler instead of
linker so that libgcc is statically linked as well.
(autoload.o): Disable optimization.
* doconfigure: Remove unused PATH manipulation.
Change CC and CXX to $target-prefixed names.
* localdir.cc (browse_cb): Fix "jump to case label crosses
initialization" error.
* mklink2.cc (sfli): Fix "non-local variable uses anonymous type"
warning.
* ntdll.h: Fix "redeclared without dllimport attribute: previous
dllimport ignored" warnings.
* package_message.h (display): Fix "'exit' was not declared in this
scope" error.
Index: Makefile.am
===================================================================
RCS file: /cvs/cygwin-apps/setup/Makefile.am,v
retrieving revision 2.81
diff -u -r2.81 Makefile.am
--- Makefile.am 8 Apr 2010 15:50:38 -0000 2.81
+++ Makefile.am 23 Jul 2010 17:01:14 -0000
@@ -117,7 +117,7 @@
libinilex.a \
-Linst/lib -lgetopt++ -lgcrypt -lgpg-error \
-lshlwapi -lcomctl32 -lole32 -lwsock32 -lnetapi32 -luuid -llzma -lbz2 -lz
-setup_LDFLAGS = -mwindows -Wl,-static -static-libtool-libs
+setup_LDFLAGS = -mwindows -Wc,-static -static-libtool-libs
setup_SOURCES = \
AntiVirus.cc \
AntiVirus.h \
@@ -284,6 +284,9 @@
libmd5-rfc/md5.c \
libmd5-rfc/md5.h
+# autoload code does not optimize well
+autoload.o: CFLAGS += -O0
+
VER := $(shell sed -ne 's/^\$$Revi[s]ion: *\([^ ]*\) *$$.*/\1/p' \
$(srcdir)/ChangeLog)
Index: doconfigure
===================================================================
RCS file: /cvs/cygwin-apps/setup/doconfigure,v
retrieving revision 2.2
diff -u -r2.2 doconfigure
--- doconfigure 30 Mar 2010 23:55:15 -0000 2.2
+++ doconfigure 23 Jul 2010 17:01:14 -0000
@@ -9,19 +9,11 @@
( cd "$DIR" && ./bootstrap.sh )
fi
-# If $build == cygwin, set PATH so that correct (mingw)
-# version of gpg-error-config and libgcrypt-config are
-# used. Otherwise: assume cross-compiler users are
-# sophisticated enough to do this manually.
-case `uname -s` in
-*CYGWIN* ) export PATH="/usr/lib/mingw:${PATH}" ;;
-esac
-
# Configure
cmd="\"$DIR/configure\""
cmd=$cmd' -C --disable-shared --enable-maintainer-mode'
cmd=$cmd' --host=i686-pc-mingw32 --build=i686-pc-cygwin'
-cmd=$cmd' CC="gcc-3 -mno-cygwin" CXX="g++-3 -mno-cygwin"'
+cmd=$cmd' CC=i686-pc-mingw32-gcc CXX=i686-pc-mingw32-g++'
for i in "$@"; do
case $i in
Index: localdir.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/localdir.cc,v
retrieving revision 2.36
diff -u -r2.36 localdir.cc
--- localdir.cc 2 Feb 2010 17:28:10 -0000 2.36
+++ localdir.cc 23 Jul 2010 17:01:14 -0000
@@ -152,12 +152,14 @@
SendMessage (h, BFFM_SETSELECTION, TRUE, (LPARAM) local_dir.c_str());
break;
case BFFM_SELCHANGED:
- // Make a note of each new dir we successfully select, so that
- // we know where to create the new directory if an invalid name
- // is entered in the text box.
- LPITEMIDLIST pidl = reinterpret_cast<LPITEMIDLIST>(lp);
- SHGetPathFromIDList (pidl, dirname);
- break;
+ {
+ // Make a note of each new dir we successfully select, so that
+ // we know where to create the new directory if an invalid name
+ // is entered in the text box.
+ LPITEMIDLIST pidl = reinterpret_cast<LPITEMIDLIST>(lp);
+ SHGetPathFromIDList (pidl, dirname);
+ break;
+ }
case BFFM_VALIDATEFAILED:
// See if user wants to create a dir in the last successfully-selected.
CHAR tempname[MAX_PATH];
Index: mklink2.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/mklink2.cc,v
retrieving revision 2.11
diff -u -r2.11 mklink2.cc
--- mklink2.cc 18 Dec 2009 11:59:54 -0000 2.11
+++ mklink2.cc 23 Jul 2010 17:01:14 -0000
@@ -111,7 +111,7 @@
: mkcygsymlink_9x (from, to);
}
-struct {
+static struct {
FILE_LINK_INFORMATION fli;
WCHAR namebuf[32768];
} sfli;
Index: ntdll.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/ntdll.h,v
retrieving revision 2.2
diff -u -r2.2 ntdll.h
--- ntdll.h 13 May 2009 11:28:34 -0000 2.2
+++ ntdll.h 23 Jul 2010 17:01:14 -0000
@@ -14,6 +14,8 @@
#ifndef SETUP_NTDLL_H
#define SETUP_NTDLL_H
+#define NTOSAPI
+
#include "ddk/ntapi.h"
#include "ddk/ntifs.h"
Index: package_message.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/package_message.h,v
retrieving revision 1.2
diff -u -r1.2 package_message.h
--- package_message.h 22 Dec 2009 16:19:51 -0000 1.2
+++ package_message.h 23 Jul 2010 17:01:14 -0000
@@ -15,6 +15,7 @@
#include "UserSettings.h"
#include "state.h"
+#include <stdlib.h>
#include <windows.h>
class packagemessage