2008/6/20 Brian Dessent: > Reini Urban wrote: > >> Some attribute causes the linker to refuse to build the dll and wants >> to build an exe. > > That's because you used -Wl,-shared where you should have used -shared. > When you use -Wl the driver treats the argument as an opaque value that > is simply passed to the linker without interpretation. In this case it > means the driver is unaware that you're trying to create a shared > library and instead passes to the linker the startup object and > corresponding options for creating a program.
[Bang on the head] Stupid me. Thanks, that compiles fine. Unfortunately it doesn't work yet. The testsuite works with 4 failures. But installed it doesn't work at all so far. I'll try it upstream now. They wanted a shared lib for a long time for some perl and python libs. I just did a simple make and installation improvement. -- Reini Urban http://phpwiki.org/ http://murbreak.at/
git-1.5.6-2-check.log
Description: Binary data
diff -urN -x CYGWIN-PATCHES -x 'aclocal.m4*' -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x config.h.in -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x COPYING -x INSTALL -x compile -x config-ml.in -x config.guess -x config.sub -x depcomp -x elisp-comp -x install-sh -x libtool.m4 -x ltoptions.m4 -x ltsugar.m4 -x ltversion.m4 -x 'lt~obsolete.m4' -x ltmain.sh -x mdate-sh -x missing -x mkinstalldirs -x py-compile -x symlink-tree -x texinfo.tex -x ylwrap -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in -x -x -x GIT-VERSION-FILE origsrc/git-1.5.6/Documentation/Makefile src/git-1.5.6/Documentation/Makefile --- origsrc/git-1.5.6/Documentation/Makefile 2008-06-19 00:49:49.000000000 +0200 +++ src/git-1.5.6/Documentation/Makefile 2008-06-21 11:03:50.984375000 +0200 @@ -57,7 +57,7 @@ -include ../config.mak ifdef ASCIIDOC8 -ASCIIDOC_EXTRA += -a asciidoc7compatible +ASCIIDOC_EXTRA += -a asciidoc7compatible --unsafe endif ifdef DOCBOOK_XSL_172 ASCIIDOC_EXTRA += -a docbook-xsl-172 @@ -163,7 +163,7 @@ mv [EMAIL PROTECTED] $@ user-manual.xml: user-manual.txt user-manual.conf - $(ASCIIDOC) -b docbook -d book $< + $(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book $< technical/api-index.txt: technical/api-index-skel.txt \ technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS)) diff -urN -x CYGWIN-PATCHES -x 'aclocal.m4*' -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x config.h.in -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x COPYING -x INSTALL -x compile -x config-ml.in -x config.guess -x config.sub -x depcomp -x elisp-comp -x install-sh -x libtool.m4 -x ltoptions.m4 -x ltsugar.m4 -x ltversion.m4 -x 'lt~obsolete.m4' -x ltmain.sh -x mdate-sh -x missing -x mkinstalldirs -x py-compile -x symlink-tree -x texinfo.tex -x ylwrap -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in -x -x -x GIT-VERSION-FILE origsrc/git-1.5.6/Makefile src/git-1.5.6/Makefile --- origsrc/git-1.5.6/Makefile 2008-06-19 00:49:49.000000000 +0200 +++ src/git-1.5.6/Makefile 2008-06-21 11:12:30.562500000 +0200 @@ -211,12 +211,12 @@ AR = ar RM = rm -f TAR = tar +LN = ln FIND = find INSTALL = install RPMBUILD = rpmbuild TCL_PATH = tclsh TCLTK_PATH = wish - export TCL_PATH TCLTK_PATH # sparse is architecture-neutral, which means that we need to tell it @@ -639,20 +639,20 @@ endif ifeq ($(uname_O),Cygwin) NO_D_TYPE_IN_DIRENT = YesPlease - NO_D_INO_IN_DIRENT = YesPlease NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease - NO_SYMLINK_HEAD = YesPlease NEEDS_LIBICONV = YesPlease NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes - NO_TRUSTABLE_FILEMODE = UnfortunatelyYes OLD_ICONV = UnfortunatelyYes # There are conflicting reports about this. # On some boxes NO_MMAP is needed, and not so elsewhere. # Try commenting this out if you suspect MMAP is more efficient - NO_MMAP = YesPlease +# NO_MMAP = YesPlease NO_IPV6 = YesPlease X = .exe + LIB_FILE=cyggit.dll + ALL_LDFLAGS += -Wl,--enable-auto-import + LN = ln -s endif ifeq ($(uname_S),FreeBSD) NEEDS_LIBICONV = YesPlease @@ -1040,7 +1040,7 @@ '-DGIT_INFO_PATH="$(infodir_SQ)"' $< $(BUILT_INS): git$X - $(QUIET_BUILT_IN)$(RM) $@ && ln git$X $@ + $(QUIET_BUILT_IN)$(RM) $@ && $(LN) git$X $@ common-cmds.h: ./generate-cmdlist.sh command-list.txt @@ -1060,8 +1060,10 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak +all::perl/perl.mak + perl/perl.mak: GIT-CFLAGS perl/Makefile perl/Makefile.PL - $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F) + $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' INSTALLDIRS=vendor $(@F) $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl $(QUIET_GEN)$(RM) $@ [EMAIL PROTECTED] && \ @@ -1169,8 +1171,17 @@ $(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h) builtin-revert.o wt-status.o: wt-status.h +ifneq (,$(findstring .dll,$(LIB_FILE))) +$(LIB_FILE): $(LIB_OBJS) builtin-fetch-pack.o builtin-send-pack.o $(XDIFF_LIB) + $(QUIET_CC)$(RM) git-dll.o && $(CC) -DSHARED_LIBOBJ -DGIT_VERSION='"$(GIT_VERSION)"' \ + $(ALL_CFLAGS) -o git-dll.o -c git.c + $(QUIET_LINK)$(RM) $@ && $(CC) -shared -Wl,--export-all-symbols \ + -o $@ $(ALL_LDFLAGS) git-dll.o $(LIB_OBJS) builtin-fetch-pack.o builtin-send-pack.o \ + $(filter-out $(LIB_FILE),$(LIBS)) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT) +else $(LIB_FILE): $(LIB_OBJS) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS) +endif XDIFF_OBJS=xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \ xdiff/xmerge.o @@ -1277,12 +1288,12 @@ endif if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \ then \ - ln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \ + $(LN) -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \ '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' || \ cp '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \ '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X'; \ fi - $(foreach p,$(BUILT_INS), $(RM) '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) + $(foreach p,$(BUILT_INS), $(RM) '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && $(LN) '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) ifneq (,$X) $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), $(RM) '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p';) endif diff -urN -x CYGWIN-PATCHES -x 'aclocal.m4*' -x autom4te.cache -x config.cache -x config.log -x config.status -x config.h -x config.h.in -x ABOUT-NLS -x Makefile.in.in -x Makevars.template -x '*SlackBuild*' -x '*.egg-info' -x '*.class' -x '*.pyc' -x '*.mo' -x '*.gmo' -x '*.orig' -x '*.rej' -x '*.spec' -x '*.temp' -x '*~' -x '*.stackdump' -x COPYING -x INSTALL -x compile -x config-ml.in -x config.guess -x config.sub -x depcomp -x elisp-comp -x install-sh -x libtool.m4 -x ltoptions.m4 -x ltsugar.m4 -x ltversion.m4 -x 'lt~obsolete.m4' -x ltmain.sh -x mdate-sh -x missing -x mkinstalldirs -x py-compile -x symlink-tree -x texinfo.tex -x ylwrap -x config.rpath -x configure -x omf.make -x xmldocs.make -x gnome-doc-utils.make -x gnome-doc-utils.m4 -x intltool.m4 -x intltool-extract -x intltool-extract.in -x intltool-merge -x intltool-merge.in -x intltool-update -x intltool-update.in -x -x -x GIT-VERSION-FILE origsrc/git-1.5.6/git.c src/git-1.5.6/git.c --- origsrc/git-1.5.6/git.c 2008-06-19 00:49:49.000000000 +0200 +++ src/git-1.5.6/git.c 2008-06-21 11:10:48.953125000 +0200 @@ -384,6 +384,7 @@ } } +#ifndef SHARED_LIBOBJ int main(int argc, const char **argv) { const char *cmd = argv[0] ? argv[0] : "git-help"; @@ -474,3 +475,4 @@ return 1; } +#endif
diff -urN origsrc/git-1.5.6/CYGWIN-PATCHES/git.README src/git-1.5.6/CYGWIN-PATCHES/git.README --- origsrc/git-1.5.6/CYGWIN-PATCHES/git.README 1970-01-01 01:00:00.000000000 +0100 +++ src/git-1.5.6/CYGWIN-PATCHES/git.README 2008-06-21 11:03:50.000000000 +0200 @@ -0,0 +1,138 @@ +git 1.5.6-1 +------------------------------------------ +Git is popular version control system designed to handle very large +projects with speed and efficiency; it is used mainly for various open +source projects, most notably the Linux kernel. + +Git falls in the category of distributed source code management tools, +similar to e.g. GNU Arch or Monotone (or BitKeeper in the proprietary +world). Every Git working directory is a full-fledged repository with +full revision tracking capabilities, not dependent on network access +or a central server. + +Runtime requirements (these or newer): + bash-3.2.39-19 + cpio-2.9-1 + cvsps-2.1-1 + cygwin-1.5.25-15 + libcurl3-7.15.4-2 + libexpat1-2.0.1-1 + libiconv2-1.11-1 + openssl-0.9.8h-1 + perl-5.8.8-4 + zlib-1.2.3-2 + +Runtime recommendations (these or newer): + less-382-1 + openssh-5.0p1-1 + patch-2.5.8-9 + perl-Error-0.17010-1 + python-2.5.1-2 + rsync-2.6.9-2 + tcltk-20080420-1 + +Additional build conditions (these or newer): + asciidoc-8.2.6-1 + binutils-20080523-1 + curl-devel-7.16.3-1 + cygport-0.3.9-1 + gcc-3.4.4-3 + libexpat1-devel-2.0.1-1 + libiconv-1.11-1 + openssl-devel-0.9.8h-1 + +Canonical homepage: + http://git.or.cz/ + +Canonical download: + http://kernel.org/pub/software/scm/git/ + +License: + GPLv2 + +Language: + C, bash, perl, tcl/tk + +------------------------------------ + +Build instructions: + unpack git-1.5.6-1-src.tar.bz2 + if you use setup to install this src package, it will be + unpacked under /usr/src automatically + cd /usr/src + cygport git-1.5.6-1 all + +This will create: + /usr/src/git-1.5.6-1.tar.bz2 + /usr/src/git-1.5.6-1-src.tar.bz2 + +Or use 'cygport git-1.5.6-1 prep' to get a patched source directory + +To find out the files included in the binary distribution, you can use +"cygcheck -l git", or browse the listing for the appropriate +version at <http://cygwin.com/packages/>. + +------------------ + +Port Notes: + +----- version 1.5.6-2 -- 2008-06-20 ----- +Patch from Reini Urban to use a cyggit.dll +and symlink the builtin hardlinked git*.exe files. +Space reduction. + +----- version 1.5.6-1 -- 2008-06-19 ----- +New upstream version. + +----- version 1.5.5.1-1 -- 2008-04-23 ----- +New upstream version. + +----- version 1.5.5-1 -- 2008-04-08 ----- +New upstream version. + +----- version 1.5.4-1 -- 2008-02-04 ----- +New upstream version. + +----- version 1.5.3.8-1 -- 2008-01-10 ----- +New upstream version. + +----- version 1.5.3.5-1 -- 2007-11-16 ----- +New upstream version. + +----- version 1.5.3.2-1 -- 2007-09-22 ----- +New upstream version. + +----- version 1.5.3-1 -- 2007-09-03 ----- +New upstream version. + +----- version 1.5.2.2-1 -- 2007-06-23 ----- +New upstream version. + +----- version 1.5.1.3-1 -- 2007-05-02 ----- +New upstream version. + +----- version 1.5.0.3-1 -- 2007-03-09 ----- +New upstream version. + +----- version 1.4.4.4-1 -- 2007-01-08 ----- +New upstream version. + +----- version 1.4.4.3-1 -- 2006-12-20 ----- +New upstream version. + +----- version 1.4.4.1-3 -- 2006-11-29 ----- +Really fix perl pod packaging bug. + +----- version 1.4.4.1-2 -- 2006-11-28 ----- +Build documentation, too. Fix perl pod packaging bug. + +----- version 1.4.4.1-1 -- 2006-11-25 ----- +Initial cygwin package. + +------------------------- + +For more information about this package, see the upstream documentation in +/usr/share/doc/git-1.5.6/. + +Cygwin port maintained by: Eric Blake <[EMAIL PROTECTED]> +Please address all questions to the Cygwin mailing list at <cygwin@cygwin.com> diff -urN origsrc/git-1.5.6/CYGWIN-PATCHES/postinstall.sh src/git-1.5.6/CYGWIN-PATCHES/postinstall.sh --- origsrc/git-1.5.6/CYGWIN-PATCHES/postinstall.sh 1970-01-01 01:00:00.000000000 +0100 +++ src/git-1.5.6/CYGWIN-PATCHES/postinstall.sh 2008-06-21 11:03:50.187500000 +0200 @@ -0,0 +1,6 @@ +#!/bin/sh +# Postinstall script for git + +# setup.exe doesn't know how to preserve permissions, but git's normal +# hooks are not intended to be installed with x permissions. +chmod a-x /usr/share/git-core/templates/hooks/* diff -urN origsrc/git-1.5.6/CYGWIN-PATCHES/setup.hint src/git-1.5.6/CYGWIN-PATCHES/setup.hint --- origsrc/git-1.5.6/CYGWIN-PATCHES/setup.hint 1970-01-01 01:00:00.000000000 +0100 +++ src/git-1.5.6/CYGWIN-PATCHES/setup.hint 2008-06-21 11:03:50.203125000 +0200 @@ -0,0 +1,13 @@ +# setup for git +sdesc: "Fast Version Control System" +ldesc: "Git is popular version control system designed to handle very +large projects with speed and efficiency; it is used mainly for +various open source projects, most notably the Linux kernel. Git falls +in the category of distributed source code management tools, similar +to e.g. GNU Arch or Monotone (or BitKeeper in the proprietary +world). Every Git working directory is a full-fledged repository with +full revision tracking capabilities, not dependent on network access +or a central server." +category: Devel +requires: bash cpio cvsps cygwin libcurl3 libexpat1 libiconv2 openssl perl perl-Error zlib +#maintainer: Eric Blake
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/