This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ANNOUNCEMENT] Updated: git-1.5.6-1


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/

Attachment: 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 $@+ $@
 
 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) $@ $@+ && \
@@ -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 <ebb9@byu.net>
+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/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]