[Ffmpeg-devel] mingw (--enable-shared) build broken

Diego Biurrun diego
Tue Aug 1 00:49:30 CEST 2006


On Mon, Jul 31, 2006 at 04:50:41PM -0300, Ramiro Polla wrote:
> Diego Biurrun wrote:
> >On Mon, Jul 31, 2006 at 07:37:59PM  0300, Andrew Voznytsa wrote:
> >
> >>mingw (--enable-shared) build broken - export libraries are not
> >>generated. Revision 5867.
> >
> >Can you try to be more specific?  What exactly is broken?  Which
> >revision introduced the problem?  r5867 was a TODO list update, so the
> >problem must have been introduced earlier.
> >
> I'll just point out what the current problem with msys mingw is. I will
> not attempt to provide a solution as to avoid being flamed. Then the
> maintainers can search for the solution they like best, that is if they
> wish to stop receiving bug reports about mingw and shared linking, which
> appear to start coming in daily.

Yes, reports are coming in by the dozen.  And yes, i'm interested in
fixing the issues, if only to make the flood stop ;)

> Everything compiles fine. The change of SLIBNAME_WITH_MAJOR to
> '$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' was a very good step. Thank
> you very much for that.

OK, so we're making progress, excellent.

> When ffmpeg.exe is run, it expects to find "SLIBNAME_WITH_MAJOR".
> ffmpeg.exe was linked with "SLIBNAME", which is just a copy of
> "SLIBNAME_WITH_MAJOR", so all the internal references really point to
> "SLIBNAME_WITH_MAJOR". But in fact, who gets installed in common.mak is
> "SLIBNAME". So when Windows looks for the .dll with major, it doesn't
> find it.
> I know I said I wouldn't attempt to provide a solution, but I changed my
> mind in those last few lines... The most plausible solution (for me)
> would be to install SLIBNAME_WITH_MAJOR instead of SLIBNAME (common.mak,
> line 65). That way, version information would go along with the
> binaries, and there would be no dll hell. Besides the fact that it would
> not clobber the makefiles, and not make a mingw-specific build. The
> mingw-specific install is already there, so it wouldn't be adding
> anything bad.

OK, please try the attached patch, I don't expect it to work right away,
but we should be able to pummel it into obedience...

Diego
-------------- next part --------------
Index: common.mak
===================================================================
--- common.mak	(revision 5875)
+++ common.mak	(working copy)
@@ -61,16 +61,12 @@
 
 install-lib-shared: $(SLIBNAME)
 	install -d "$(shlibdir)"
-ifeq ($(CONFIG_MINGW),yes)
-	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
-else
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
 		$(shlibdir)/$(SLIBNAME_WITH_VERSION)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 	       $(shlibdir)/$(SLIBNAME_WITH_MAJOR)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 	       $(shlibdir)/$(SLIBNAME)
-endif
 
 install-lib-static: $(LIB)
 	install -d "$(libdir)"
@@ -85,13 +81,9 @@
 uninstall: uninstall-libs uninstall-headers
 
 uninstall-libs:
-ifeq ($(CONFIG_MINGW),yes)
-	-rm -f $(prefix)/$(SLIBNAME)
-else
 	-rm -f $(libdir)/$(SLIBNAME_WITH_MAJOR) \
 	       $(libdir)/$(SLIBNAME)            \
 	       $(libdir)/$(SLIBNAME_WITH_VERSION)
-endif
 	-rm -f $(libdir)/$(LIB)
 
 uninstall-headers:



More information about the ffmpeg-devel mailing list