{"thread":{"id":"21384","subject":"[PATCH 0/4] Cygwin MSVC patches","startedAt":"2009-10-27T18:50:53Z","lastAt":"2009-11-04T19:03:23Z","messageCount":5,"participants":["Ramsay Jones","Johannes Sixt"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"126052","messageId":"4AE7410D.3030109@ramsay1.demon.co.uk","threadId":"21384","inReplyTo":null,"subject":"[PATCH 0/4] Cygwin MSVC patches","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2009-10-27T18:50:53Z","receivedAt":"2009-10-27T18:50:53Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Hi Junio,\n\nI've had these patches \"hanging around\" in my queue, for a few\nweeks, with every intention of adding several more to fix up\nsome problems... Hmm, well I haven't got to those yet, so I\nthought I may as well pass these on.\n\n[PATCH 1/4] MSVC: Fix an \"unresolved symbol\" linker error on cygwin\n[PATCH 2/4] Makefile: merge two Cygwin configuration sections into one\n[PATCH 3/4] Makefile: keep MSVC and Cygwin configuration separate\n[PATCH 4/4] win32: Improve the conditional inclusion of WIN32 API code\n\nI think they are all pretty safe (famous last words), but it would be\na good idea for someone with an MSYS/MinGW installation to test them\n(particularly patch #4; it's really the only one I'm slightly worried\nabout :D).\n\nWith these patches, the msvc build on cygwin seems to be working fine.\n\nAt first it looked bad; an ./git-status showed a shed-load of \"Changed\nbut not updated\" files along with many \"Untracked files\" which should\nhave been ignored (eg editor backup files).\n\nIn order to fix the ignored files problem, I had to make a change to\n~/.gitconfig. The core.excludesfile was set to /home/ramsay/.gitignore,\nwhich (being a cygwin path) the msvc build could not read.  However,\nsetting this to C:/cygwin/home/ramsay/.gitignore fixed the problem\nsince both the cygwin and msvc builds can read that path.\n\nWhen ./git-diff showed that most of the \"Changed\" files differed only\nin the mode, in particular only the execute bit, it was easy to fix\nthat also; set core.filemode to false.\n\nThis left only the symlink RelNotes, which was shown as deleted and an\nRelNotes.lnk file as untracked. This is to be expected on a cygwin\ngit repo (and is an example of the \"white-lies\" that cygwin tells you\nwhen it iterates over the filesystem).\n\nATB,\nRamsay Jones\n"},{"id":"126089","messageId":"4AE7EB06.10305@viscovery.net","threadId":"21384","inReplyTo":"4AE7410D.3030109@ramsay1.demon.co.uk","subject":"Re: [PATCH 0/4] Cygwin MSVC patches","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2009-10-28T06:56:06Z","receivedAt":"2009-10-28T06:56:06Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Ramsay Jones schrieb:\n> Hi Junio,\n> \n> I've had these patches \"hanging around\" in my queue, for a few\n> weeks, with every intention of adding several more to fix up\n> some problems... Hmm, well I haven't got to those yet, so I\n> thought I may as well pass these on.\n> \n> [PATCH 1/4] MSVC: Fix an \"unresolved symbol\" linker error on cygwin\n> [PATCH 2/4] Makefile: merge two Cygwin configuration sections into one\n> [PATCH 3/4] Makefile: keep MSVC and Cygwin configuration separate\n> [PATCH 4/4] win32: Improve the conditional inclusion of WIN32 API code\n> \n> I think they are all pretty safe (famous last words), but it would be\n> a good idea for someone with an MSYS/MinGW installation to test them\n> (particularly patch #4; it's really the only one I'm slightly worried\n> about :D).\n> \n> With these patches, the msvc build on cygwin seems to be working fine.\n\nWhat is \"the msvc build on cygwin\"?\n\nIs it \"git built with msvc, then run in cygwin\"?\n\n-- Hannes\n"},{"id":"126321","messageId":"4AE8C3FD.2020300@ramsay1.demon.co.uk","threadId":"21384","inReplyTo":"4AE7EB06.10305@viscovery.net","subject":"Re: [PATCH 0/4] Cygwin MSVC patches","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2009-10-28T22:21:49Z","receivedAt":"2009-10-28T22:21:49Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Johannes Sixt wrote:\n> Ramsay Jones schrieb:\n>> With these patches, the msvc build on cygwin seems to be working fine.\n> \n> What is \"the msvc build on cygwin\"?\n\nThe same as the msvc build on msys-MinGW, but replace msys-MinGW\nwith Cygwin ;-)\n\n> Is it \"git built with msvc, then run in cygwin\"?\n\nYes, but... *in theory* the cygwin msvc-built binaries could be transferred\nto an msys system and they should work (exactly as the msvc build on msys).\nSince I don't have an msys installation, I can't test that... so I won't\nguarantee it will work!\n\nAny git needs a (bash-like) shell, perl, Tcl/Tk, ... etc.\n\nNote the difference in the cygcheck output on the (cygwin) msvc-built git:\n\n    $ cygcheck ./git.exe\n    .\\git.exe\n      C:\\WINDOWS\\system32\\ADVAPI32.dll\n        C:\\WINDOWS\\system32\\ntdll.dll\n        C:\\WINDOWS\\system32\\KERNEL32.dll\n        C:\\WINDOWS\\system32\\RPCRT4.dll\n          C:\\WINDOWS\\system32\\Secur32.dll\n      C:\\WINDOWS\\system32\\SHELL32.dll\n        C:\\WINDOWS\\system32\\GDI32.dll\n          C:\\WINDOWS\\system32\\USER32.dll\n        C:\\WINDOWS\\system32\\msvcrt.dll\n        C:\\WINDOWS\\system32\\SHLWAPI.dll\n      C:\\WINDOWS\\system32\\WS2_32.dll\n        C:\\WINDOWS\\system32\\WS2HELP.dll\n      C:\\WINDOWS\\system32\\zlib1.dll\n    $ \n\nrather than the cygwin git:\n\n    $ cygcheck ./git.exe\n    .\\git.exe\n      C:\\cygwin\\bin\\cygcrypto-0.9.8.dll\n        C:\\cygwin\\bin\\cygwin1.dll\n          C:\\WINDOWS\\system32\\ADVAPI32.DLL\n            C:\\WINDOWS\\system32\\ntdll.dll\n            C:\\WINDOWS\\system32\\KERNEL32.dll\n            C:\\WINDOWS\\system32\\RPCRT4.dll\n              C:\\WINDOWS\\system32\\Secur32.dll\n      C:\\cygwin\\bin\\cygiconv-2.dll\n      C:\\cygwin\\bin\\cygz.dll\n    $ \n\n[Actually, one difference between the msys and cygwin msvc builds\nis that I have dynamically linked to the zlib1.dll rather than\nusing the static library from the msvcgit.git dependencies repo.]\n\nATB,\nRamsay Jones\n"},{"id":"126625","messageId":"4AEFD6F9.5000305@viscovery.net","threadId":"21384","inReplyTo":"4AE8C3FD.2020300@ramsay1.demon.co.uk","subject":"Re: [PATCH 0/4] Cygwin MSVC patches","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2009-11-03T07:08:41Z","receivedAt":"2009-11-03T07:08:41Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Ramsay Jones schrieb:\n> Johannes Sixt wrote:\n>> Ramsay Jones schrieb:\n>>> With these patches, the msvc build on cygwin seems to be working fine.\n>> What is \"the msvc build on cygwin\"?\n> \n> The same as the msvc build on msys-MinGW, but replace msys-MinGW\n> with Cygwin ;-)\n> \n>> Is it \"git built with msvc, then run in cygwin\"?\n> \n> Yes, but... *in theory* the cygwin msvc-built binaries could be transferred\n> to an msys system and they should work (exactly as the msvc build on msys).\n> Since I don't have an msys installation, I can't test that... so I won't\n> guarantee it will work!\n> \n> Any git needs a (bash-like) shell, perl, Tcl/Tk, ... etc.\n\nJust to check I understand correctly: you are running \"make MSVC=1\" on\ncygwin, and then you are using the resulting binaries with the POSIX tools\nfrom cygwin.\n\n-- Hannes\n"},{"id":"126820","messageId":"4AF1CFFB.30506@ramsay1.demon.co.uk","threadId":"21384","inReplyTo":"4AEFD6F9.5000305@viscovery.net","subject":"Re: [PATCH 0/4] Cygwin MSVC patches","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2009-11-04T19:03:23Z","receivedAt":"2009-11-04T19:03:23Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Johannes Sixt wrote:\n> Just to check I understand correctly: you are running \"make MSVC=1\" on\n> cygwin, and then you are using the resulting binaries with the POSIX tools\n> from cygwin.\n\nYes.\n\n    $ uname -a\n    CYGWIN_NT-5.1 toshiba 1.5.22(0.156/4/2) 2006-11-13 17:01 i686 Cygwin\n    $ pwd\n    /home/ramsay/git\n    $ make clean\n    [...output snipped...]\n    $ make MSVC=1\n    [...975 lines of output snipped; built OK...]\n    $ ./git --version\n    git version 1.6.5.4.g57e8c.MSVC\n    $\n\nSee original [PATCH 0/4] email for more...\n\nATB,\nRamsay Jones\n"}]}