Hi Eric, thanks for the quick answer
When I started developing for debian this work was already almost done, I took it and I never looked too much :) this is what I'm using: --enable-server \ --enable-fcgi \ --enable-boinczip \ --enable-client \ --enable-manager \ --enable-dynamic-client-linkage \ --prefix=/usr \ --libdir=/usr/lib \ --libexecdir=/usr/lib \ --enable-libraries \ --enable-install-headers \ --enable-unicode \ --enable-shared \ --enable-xss \ --disable-static \ --with-ssl \ --with-x \ this is what I get /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../api -I../db -I../lib -I../lib/mac -I../sched -I../tools -I../vda -pthread -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wshadow -Wredundant-decls -Wdisabled-optimization -Wpointer-arith -Wstrict-aliasing -Wcast-align -I.. -I../zip/zip -I../zip/unzip -I../lib -DUNIX -DDLL -DUSE_ZIPMAIN -DNO_OFF_T -DNO_CRYPT -DNO_LCHOWN -DNO_LCHMOD -DIZ_PWLEN=80 -Dinflate=inflate_boinc -Ddeflate=deflate_boinc -Dget_crc_table=get_crc_table_boinc -Dlongest_match=longest_match_boinc -Dinflate_codes=inflate_codes_boinc -Dcrc32=crc32_boinc -g -O0 -Wall -fPIC -c -o z_unix.lo `test -f './zip/unix/z_unix.c' || echo './'`./zip/unix/z_unix.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../api -I../db -I../lib -I../lib/mac -I../sched -I../tools -I../vda -pthread -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wshadow -Wredundant-decls -Wdisabled-optimization -Wpointer-arith -Wstrict-aliasing -Wcast-align -I.. -I../zip/zip -I../zip/unzip -I../lib -DUNIX -DDLL -DUSE_ZIPMAIN -DNO_OFF_T -DNO_CRYPT -DNO_LCHOWN -DNO_LCHMOD -DIZ_PWLEN=80 -Dinflate=inflate_boinc -Ddeflate=deflate_boinc -Dget_crc_table=get_crc_table_boinc -Dlongest_match=longest_match_boinc -Dinflate_codes=inflate_codes_boinc -Dcrc32=crc32_boinc -g -O0 -Wall -fPIC -c ./zip/unix/z_unix.c -fPIC -DPIC -o .libs/z_unix.o ./zip/unix/z_unix.c: In function 'set_extra_field': ./zip/unix/z_unix.c:567:12: warning: unused parameter 'z_utim' [-Wunused-parameter] iztimes *z_utim; ^ /bin/bash ../libtool --tag=CXX --mode=link /usr/bin/g++ -Wall -Wextra -Wshadow -Wredundant-decls -Wdisabled-optimization -Wpointer-arith -Wstrict-aliasing -Wcast-align -I.. -I../zip/zip -I../zip/unzip -I../lib -DUNIX -DDLL -DUSE_ZIPMAIN -DNO_OFF_T -DNO_CRYPT -DNO_LCHOWN -DNO_LCHMOD -DIZ_PWLEN=80 -Dinflate=inflate_boinc -Ddeflate=deflate_boinc -Dget_crc_table=get_crc_table_boinc -Dlongest_match=longest_match_boinc -Dinflate_codes=inflate_codes_boinc -Dcrc32=crc32_boinc -I.. -I../zip/zip -I../zip/unzip -I../lib -DUNIX -DDLL -DUSE_ZIPMAIN -DNO_OFF_T -DNO_CRYPT -DNO_LCHOWN -DNO_LCHMOD -DIZ_PWLEN=80 -Dinflate=inflate_boinc -Ddeflate=deflate_boinc -Dget_crc_table=get_crc_table_boinc -Dlongest_match=longest_match_boinc -Dinflate_codes=inflate_codes_boinc -Dcrc32=crc32_boinc -g -O0 -Wall -fPIC -L/usr/lib -rpath /usr/lib -version-number 7:4:1 -fPIE -pie -Wl,-z,relro -Wl,-z,now -flto -Wl,--no-add-needed -o libboinc_zip.la -rpath /usr/lib boinc_zip.lo api.lo apihelp.lo crc32.lo explode.lo extract.lo fileio.lo globals.lo inflate.lo list.lo match.lo process.lo ttyio.lo unreduce.lo unshrink.lo unzip.lo zipinfo.lo deflate.lo trees.lo util.lo z_fileio.lo z_globals.lo zip.lo zipfile.lo zipup.lo unix.lo z_unix.lo libtool: link: /usr/bin/g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.9/crtbeginS.o .libs/boinc_zip.o .libs/api.o .libs/apihelp.o .libs/crc32.o .libs/explode.o .libs/extract.o .libs/fileio.o .libs/globals.o .libs/inflate.o .libs/list.o .libs/match.o .libs/process.o .libs/ttyio.o .libs/unreduce.o .libs/unshrink.o .libs/unzip.o .libs/zipinfo.o .libs/deflate.o .libs/trees.o .libs/util.o .libs/z_fileio.o .libs/z_globals.o .libs/zip.o .libs/zipfile.o .libs/zipup.o .libs/unix.o .libs/z_unix.o -L/usr/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.9/crtfastmath.o /usr/lib/gcc/x86_64-linux-gnu/4.9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crtn.o -O0 -Wl,-z -Wl,relro -Wl,-z -Wl,now -flto -Wl,--no-add-needed -Wl,-soname -Wl,libboinc_zip.so.7 -o .libs/libboinc_zip.so.7.4.1 libtool: link: (cd ".libs" && rm -f "libboinc_zip.so.7" && ln -s "libboinc_zip.so.7.4.1" "libboinc_zip.so.7") libtool: link: (cd ".libs" && rm -f "libboinc_zip.so" && ln -s "libboinc_zip.so.7.4.1" "libboinc_zip.so") libtool: link: ( cd ".libs" && rm -f "libboinc_zip.la" && ln -s "../libboinc_zip.la" "libboinc_zip.la" ) rm -f libboinc_zip.a /bin/ln .libs/libboinc_zip.a . /bin/ln: failed to access '.libs/libboinc_zip.a': No such file or directory cheers, Gianfranco Il Martedì 17 Giugno 2014 17:26, Eric J Korpela <[email protected]> ha scritto: > > >I'm not sure why this in necessary. First, it's very linux specific, libtool >and gcc and ld version specific. > > >Does the standard libtool "--enable-shared --disable-static" not work? It's >been a while since I had time or need to backport to solaris, but that used to >be all that was necessary to get shared libraries without static libs. > >Does "--enable-pkg-libs" not build a set of installable shared libraries? >Does "make install" not install them properly? Does "--enable-pkg-devel" not >provide for an installable development package? Does >"--enable-dynamic-client-linkage" no longer build a dynamically linked client? > >If these mechanism aren't working, it's better to fix the existing mechanisms >than to add a new one that duplicates functionality. > > > > > > > >On Tue, Jun 17, 2014 at 6:11 AM, Gianfranco Costamagna ><[email protected]> wrote: > >Hi Boinc development team, >> >>as you already know debian has a little patched boinc version that >>dynamically links almost everything and exports those libraries to >>applications that uses them (e.g. seti, milkyway) >> >> >> >>This approach has never been merged upstream since you don't want to >>dynamically link almost anything in your source tree, however since in debian >>we have really nice results I decided to merge my patches and give you a >>single patch with a new autoconf swich, that permits distros who wants to >>automagically dynamically build the source code. >> >>This approach is disabled by default, so the current behaviour will still be >>the default >>what do you think about? >> >>This will simplify a lot the debian maintaining of your package. >> >>Thanks, >> >> >> >> >>Gianfranco >> >>--- /dev/null >>+++ b/debian/patches/dynamic-libs.patch >>@@ -0,0 +1,203 @@ >>+--- a/configure.ac >>++++ b/configure.ac >>+@@ -71,6 +71,11 @@ >>+ [dynamic_client=${enableval}], >>+ [dynamic_client=no]) >>+ >>++AC_ARG_ENABLE(dynamic-libs, >>++ AS_HELP_STRING([--enable-dynamic-libs], >>++ [build dynamic libraries]), >>++ [dynamic_libs=yes]) >>++ >>+ AC_ARG_ENABLE(server, >>+ AS_HELP_STRING([--disable-server], >>+ [disable building the scheduling server]), >>+@@ -949,6 +954,7 @@ >>+ >>+ dnl tell automake about whether to build client and/or server >>+ AM_CONDITIONAL(DYNAMIC_CLIENT, [test "${dynamic_client}" = yes]) >>++AM_CONDITIONAL(DYNAMIC_LIBS, [test "x${dynamic_libs}" = xyes]) >>+ AM_CONDITIONAL(ENABLE_SERVER, [test "${enable_server}" = yes]) >>+ AM_CONDITIONAL(ENABLE_CLIENT, [test "${enable_client}" = yes]) >>+ AM_CONDITIONAL(ENABLE_MANAGER, [ test "x${ac_cv_have_wxwidgets}" = xyes -a >>"${enable_manager}" = yes ]) >>+--- a/Makefile.incl >>++++ b/Makefile.incl >>+@@ -41,26 +41,36 @@ >>+ # dependencies to make sure libs gets compiled before >>+ # programs linking to them: >>+ >>+-LIBSCHED = $(top_builddir)/sched/libsched.la >>++if DYNAMIC_LIBS >>++ LIBSCHED = -lsched >>++ LIBSCHED_FCGI = -lsched_fcgi >>++ LIBBOINC = -lboinc >>++ LIBBOINC_CRYPT = -lboinc_crypt >>++ LIBBOINC_FCGI = -lboinc_fcgi >>++ LIBAPI = -lboinc_api >>++else >>++ LIBSCHED = $(top_builddir)/sched/libsched.la >>++ LIBSCHED_FCGI = $(top_builddir)/sched/libsched_fcgi.la >>++ LIBBOINC = $(top_builddir)/lib/libboinc.la >>++ LIBBOINC_CRYPT = $(top_builddir)/lib/libboinc_crypt.la >>++ LIBBOINC_FCGI = $(top_builddir)/lib/libboinc_fcgi.la >>++ LIBAPI = $(top_builddir)/api/libboinc_api.la >>++endif >>++ >>+ $(LIBSCHED): >>+ cd $(top_builddir)/sched; ${MAKE} libsched.la >>+-LIBSCHED_FCGI = $(top_builddir)/sched/libsched_fcgi.la >>+ $(LIBSCHED_FCGI): >>+ cd $(top_builddir)/sched; ${MAKE} libsched_fcgi.la >>+-LIBBOINC = $(top_builddir)/lib/libboinc.la >>+ $(LIBBOINC): >>+ cd $(top_builddir)/lib; ${MAKE} libboinc.la >>+-LIBBOINC_CRYPT = $(top_builddir)/lib/libboinc_crypt.la >>+ $(LIBBOINC_CRYPT): >>+ cd $(top_builddir)/lib; ${MAKE} libboinc.la >>+-LIBBOINC_FCGI = $(top_builddir)/lib/libboinc_fcgi.la >>+ $(LIBBOINC_FCGI): >>+ cd $(top_builddir)/lib; ${MAKE} libboinc_fcgi.la >>+-LIBAPI = $(top_builddir)/api/libboinc_api.la >>+ $(LIBAPI): >>+ cd $(top_builddir)/api; ${MAKE} libboinc_api.la >>+ >>+ SERVERLIBS = $(LIBSCHED) $(LIBBOINC_CRYPT) $(LIBBOINC) $(MYSQL_LIBS) >>$(PTHREAD_LIBS) $(RSA_LIBS) $(SSL_LIBS) >>+ SERVERLIBS_FCGI = $(LIBSCHED_FCGI) $(LIBBOINC_CRYPT) $(LIBBOINC_FCGI) >>-lfcgi $(MYSQL_LIBS) $(PTHREAD_LIBS) $(RSA_LIBS) $(SSL_LIBS) >>+ APPLIBS = $(LIBAPI) $(LIBBOINC) >>+- >>++.PHONY: $(LIBBOINC) $(LIBBOINC_CRYPT) $(LIBBOINC_FCGI) $(LIBAPI) >>$(LIBSCHED) $(LIBSCHED_FCGI) >>+--- a/client/Makefile.am >>++++ b/client/Makefile.am >>+@@ -31,7 +31,11 @@ >>+ boinccmd_DEPENDENCIES = $(LIBBOINC) >>+ boinccmd_CPPFLAGS = $(AM_CPPFLAGS) >>+ boinccmd_LDFLAGS = $(AM_LDFLAGS) -L$(top_srcdir)/lib >>++if DYNAMIC_LIBS >>++boinccmd_LDADD = $(LIBBOINC) $(BOINC_EXTRA_LIBS) $(PTHREAD_LIBS) >>-L../lib/.libs >>++else >>+ boinccmd_LDADD = $(LIBBOINC) $(BOINC_EXTRA_LIBS) $(PTHREAD_LIBS) >>++endif >>+ >>+ boinc_client_SOURCES = \ >>+ acct_mgr.cpp \ >>+--- a/apps/Makefile.am >>++++ b/apps/Makefile.am >>+@@ -8,15 +8,27 @@ >>+ >>+ upper_case_SOURCES = upper_case.cpp >>+ upper_case_CXXFLAGS = $(PTHREAD_CFLAGS) >>++if DYNAMIC_LIBS >>++upper_case_LDFLAGS = -static-libtool-libs $(PTHREAD_CFLAGS) -L../api/.libs >>-L../lib/.libs >>++else >>+ upper_case_LDFLAGS = -static-libtool-libs $(PTHREAD_CFLAGS) >>++endif >>+ upper_case_LDADD = $(APPLIBS) >>+ >>+ concat_SOURCES = concat.cpp >>+ concat_CXXFLAGS = $(PTHREAD_CFLAGS) >>++if DYNAMIC_LIBS >>++concat_LDFLAGS = -static-libtool-libs $(PTHREAD_CFLAGS) -L../api/.libs >>-L../lib/.libs >>++else >>+ concat_LDFLAGS = -static-libtool-libs $(PTHREAD_CFLAGS) >>++endif >>+ concat_LDADD = $(APPLIBS) >>+ >>+ 1sec_SOURCES = 1sec.cpp >>+ 1sec_CXXFLAGS = $(PTHREAD_CFLAGS) >>++if DYNAMIC_LIBS >>++1sec_LDFLAGS = -static-libtool-libs $(PTHREAD_CFLAGS) -L../api/.libs >>-L../lib/.libs >>++else >>+ 1sec_LDFLAGS = -static-libtool-libs $(PTHREAD_CFLAGS) >>++endif >>+ 1sec_LDADD = $(APPLIBS) >>+--- a/lib/Makefile.am >>++++ b/lib/Makefile.am >>+@@ -175,13 +175,21 @@ >>+ libboinc_la_SOURCES = $(generic_sources) $(mac_sources) $(win_sources) >>+ libboinc_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) >>+ libboinc_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) >>++if DYNAMIC_LIBS >>++libboinc_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number >>$(LIBBOINC_VERSION) >>++else >>+ libboinc_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number >>$(LIBBOINC_VERSION) >>++endif >>+ libboinc_la_LIBADD = >>+ >>+ libboinc_crypt_la_SOURCES = crypt.cpp >>+ libboinc_crypt_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) >>$(SSL_CFLAGS) >>+ libboinc_crypt_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) >>$(SSL_CXXFLAGS) >>++if DYNAMIC_LIBS >>++libboinc_crypt_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number >>$(LIBBOINC_VERSION) >>++else >>+ libboinc_crypt_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static >>-version-number $(LIBBOINC_VERSION) >>++endif >>+ libboinc_crypt_la_LIBADD = >>+ >>+ >>+@@ -250,7 +258,11 @@ >>+ msg_test_LDADD = $(LIBBOINC) >>+ crypt_prog_SOURCES = crypt_prog.cpp >>+ crypt_prog_CXXFLAGS = $(PTHREAD_CFLAGS) >>++if DYNAMIC_LIBS >>++crypt_prog_LDADD = $(LIBBOINC_CRYPT_STATIC) $(LIBBOINC) $(SSL_LIBS) >>-L../lib/.libs >>++else >>+ crypt_prog_LDADD = $(LIBBOINC_CRYPT_STATIC) $(LIBBOINC) $(SSL_LIBS) >>++endif >>+ parse_test_SOURCES = parse_test.cpp >>+ parse_test_CXXFLAGS = $(PTHREAD_CFLAGS) >>+ parse_test_LDADD = $(LIBBOINC) >>+--- a/vda/Makefile.am >>++++ b/vda/Makefile.am >>+@@ -4,7 +4,11 @@ >>+ vda_PROGRAMS = vda vdad ssim >>+ >>+ AM_CXXFLAGS += $(MYSQL_CFLAGS) >>++if DYNAMIC_LIBS >>++AM_LDFLAGS += -L../sched -L../lib/.libs >>++else >>+ AM_LDFLAGS += -static >>++endif >>+ >>+ vda_SOURCES = vda.cpp vda_lib.cpp vda_lib2.cpp vda_policy.cpp stats.cpp >>+ vda_LDADD = $(SERVERLIBS) >>+--- a/sched/Makefile.am >>++++ b/sched/Makefile.am >>+@@ -4,7 +4,11 @@ >>+ include $(top_srcdir)/Makefile.incl >>+ >>+ AM_CPPFLAGS += $(MYSQL_CFLAGS) $(PTHREAD_CFLAGS) >>++if DYNAMIC_LIBS >>++AM_LDFLAGS += -L../lib/.libs >>++else >>+ AM_LDFLAGS += -static >>++endif >>+ >>+ if ENABLE_LIBRARIES >>+ >>+--- a/tools/Makefile.am >>++++ b/tools/Makefile.am >>+@@ -44,7 +44,11 @@ >>+ gui_urls.xml >>+ >>+ AM_CXXFLAGS += $(MYSQL_CFLAGS) >>++if DYNAMIC_LIBS >>++AM_LDFLAGS += -L../sched -L../lib/.libs >>++else >>+ AM_LDFLAGS += -static >>++endif >>+ >>+ cancel_jobs_SOURCES = cancel_jobs.cpp >>+ cancel_jobs_LDADD = $(SERVERLIBS) >>+--- a/clientgui/Makefile.am >>++++ b/clientgui/Makefile.am >>+@@ -13,7 +13,9 @@ if ENABLE_CLIENT_RELEASE >>+ ## so we'll use the safer "-static-libtool-libs" by default. >>+ else >>+ if DYNAMIC_CLIENT >>+-## if libtool starts to need flags for dynamic linking, add them here >>++if DYNAMIC_LIBS >>++ AM_LDFLAGS += -L../lib/.libs >>++endif >>+ else >>+ AM_LDFLAGS += -static >>+ endif >>_______________________________________________ >>boinc_dev mailing list >>[email protected] >>http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev >>To unsubscribe, visit the above URL and >>(near bottom of page) enter your email address. >> > > > _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
