Message ID | 1449587901-12784-1-git-send-email-sakari.ailus@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Gregor, I discussed with Hans and he thought you'd be the best person to take a look at this. The case is that I'd like to build static binaries and that doesn't seem to work with what's in Makefile.am for libv4l1 and libv4l2 at the moment. Thanks. On Tue, Dec 08, 2015 at 05:18:21PM +0200, Sakari Ailus wrote: > $ LDFLAGS="--static -static" ./configure --enable-static > $ LDFLAGS=-static make > > can be used to create static binaries. The issue was that shared libraries > were attempted to link statically which naturally failed. > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > --- > lib/libv4l1/Makefile.am | 3 +-- > lib/libv4l2/Makefile.am | 3 +-- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/lib/libv4l1/Makefile.am b/lib/libv4l1/Makefile.am > index 005ae10..c325390 100644 > --- a/lib/libv4l1/Makefile.am > +++ b/lib/libv4l1/Makefile.am > @@ -23,7 +23,6 @@ libv4l1_la_LIBADD = ../libv4l2/libv4l2.la > v4l1compat_la_SOURCES = v4l1compat.c > > v4l1compat_la_LIBADD = libv4l1.la > -v4l1compat_la_LDFLAGS = -avoid-version -module -shared -export-dynamic > -v4l1compat_la_LIBTOOLFLAGS = --tag=disable-static > +v4l1compat_la_LDFLAGS = -avoid-version -module -export-dynamic > > EXTRA_DIST = libv4l1-kernelcode-license.txt > diff --git a/lib/libv4l2/Makefile.am b/lib/libv4l2/Makefile.am > index b6f4d3b..878ccd9 100644 > --- a/lib/libv4l2/Makefile.am > +++ b/lib/libv4l2/Makefile.am > @@ -22,7 +22,6 @@ libv4l2_la_LIBADD = ../libv4lconvert/libv4lconvert.la > > v4l2convert_la_SOURCES = v4l2convert.c > v4l2convert_la_LIBADD = libv4l2.la > -v4l2convert_la_LDFLAGS = -avoid-version -module -shared -export-dynamic > -v4l2convert_la_LIBTOOLFLAGS = --tag=disable-static > +v4l2convert_la_LDFLAGS = -avoid-version -module -export-dynamic > > EXTRA_DIST = Android.mk v4l2-plugin-android.c > -- > 2.1.0.231.g7484e3b > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello, On 10/12/15 14:21, Sakari Ailus wrote: > I discussed with Hans and he thought you'd be the best person to take a look > at this. > > The case is that I'd like to build static binaries and that doesn't seem to > work with what's in Makefile.am for libv4l1 and libv4l2 at the moment. Sorry for the late reply. Didi not notice this email earlier. Your patch does not do what you'd like to achieve. Both v4l1compat and v4l2convert are libraries which only purpose is to get preloaded by the loader. So build them statically does not make sense. Instead they should not be built at all. To achieve this the WITH_V4L_WRAPPERS variable should evaluate to false. This is triggered by AM_CONDITIONAL([WITH_V4L_WRAPPERS], [test x$enable_libv4l != xno -a x$enable_shared != xno]) So changing LDFLAGS="--static -static" ./configure --enable-static to LDFLAGS="--static -static" ./configure --enable-static --disabled-shared should do the trick. Does this help? Thanks, Gregor -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Gregor, On Wed, Dec 16, 2015 at 09:21:16PM +0100, Gregor Jasny wrote: > Hello, > > On 10/12/15 14:21, Sakari Ailus wrote: > > I discussed with Hans and he thought you'd be the best person to take a look > > at this. > > > > The case is that I'd like to build static binaries and that doesn't seem to > > work with what's in Makefile.am for libv4l1 and libv4l2 at the moment. > > Sorry for the late reply. Didi not notice this email earlier. Your patch > does not do what you'd like to achieve. Both v4l1compat and v4l2convert > are libraries which only purpose is to get preloaded by the loader. So > build them statically does not make sense. Instead they should not be > built at all. To achieve this the WITH_V4L_WRAPPERS variable should > evaluate to false. This is triggered by > > AM_CONDITIONAL([WITH_V4L_WRAPPERS], [test x$enable_libv4l != xno -a > x$enable_shared != xno]) > > So changing > > LDFLAGS="--static -static" ./configure --enable-static > > to > > LDFLAGS="--static -static" ./configure --enable-static --disabled-shared > > should do the trick. Does this help? It does. I get statically linked binaries now without changes. Thank you, Gregor! Hans, Mauro, please ignore the patch.
diff --git a/lib/libv4l1/Makefile.am b/lib/libv4l1/Makefile.am index 005ae10..c325390 100644 --- a/lib/libv4l1/Makefile.am +++ b/lib/libv4l1/Makefile.am @@ -23,7 +23,6 @@ libv4l1_la_LIBADD = ../libv4l2/libv4l2.la v4l1compat_la_SOURCES = v4l1compat.c v4l1compat_la_LIBADD = libv4l1.la -v4l1compat_la_LDFLAGS = -avoid-version -module -shared -export-dynamic -v4l1compat_la_LIBTOOLFLAGS = --tag=disable-static +v4l1compat_la_LDFLAGS = -avoid-version -module -export-dynamic EXTRA_DIST = libv4l1-kernelcode-license.txt diff --git a/lib/libv4l2/Makefile.am b/lib/libv4l2/Makefile.am index b6f4d3b..878ccd9 100644 --- a/lib/libv4l2/Makefile.am +++ b/lib/libv4l2/Makefile.am @@ -22,7 +22,6 @@ libv4l2_la_LIBADD = ../libv4lconvert/libv4lconvert.la v4l2convert_la_SOURCES = v4l2convert.c v4l2convert_la_LIBADD = libv4l2.la -v4l2convert_la_LDFLAGS = -avoid-version -module -shared -export-dynamic -v4l2convert_la_LIBTOOLFLAGS = --tag=disable-static +v4l2convert_la_LDFLAGS = -avoid-version -module -export-dynamic EXTRA_DIST = Android.mk v4l2-plugin-android.c
$ LDFLAGS="--static -static" ./configure --enable-static $ LDFLAGS=-static make can be used to create static binaries. The issue was that shared libraries were attempted to link statically which naturally failed. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- lib/libv4l1/Makefile.am | 3 +-- lib/libv4l2/Makefile.am | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)