From patchwork Thu Jul 26 20:34:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Omar Sandoval X-Patchwork-Id: 10546443 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A3920180E for ; Thu, 26 Jul 2018 20:34:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 95FDC2B70C for ; Thu, 26 Jul 2018 20:34:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 899F02B808; Thu, 26 Jul 2018 20:34:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 122E22B806 for ; Thu, 26 Jul 2018 20:34:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731287AbeGZVxT (ORCPT ); Thu, 26 Jul 2018 17:53:19 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:33467 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730989AbeGZVxT (ORCPT ); Thu, 26 Jul 2018 17:53:19 -0400 Received: by mail-pl0-f67.google.com with SMTP id 6-v6so1315807plb.0 for ; Thu, 26 Jul 2018 13:34:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osandov-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zfhOu6WarE9T5BcWssW4S+5RqACpX/mWXeG0n3RiJZI=; b=TWdAdJDxJ+BmtINk+EW9Rvwn80J2CKF59Hsb1Wa9P5YsTV1l/pyaFVEt7wap/qNtTY /5sOkoo1ZIXA/fpxrF5Unq1iyhRBWq6G+mSXPUd4D0xTQ1iG3TUbbYR5qPyio4kXl3sn 8H28P3UoprDGOReNevIgqXR2bw+tDnjKVn8CDAqoEmIMDcULxFYQr4pVp0Cg8UEO8mfD 9urJXfUaH8P8fOyJgrRxepiSK/knpfh8qUDpe4mOgDAurh0Q4Ah8WSynVd62PGel+1rq kpuNrDJCKE4GNTiVB8Pq054cBWLnmWl3n4xweKnjckr3H95D+WNwcaThrNCMOZwbuqk5 CKkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zfhOu6WarE9T5BcWssW4S+5RqACpX/mWXeG0n3RiJZI=; b=Lrwan7P90Zl4nETWrfAbKhhK4h+u+cB/KUJO8Ajq+/r2YxCbMIb54k1pPrBzzEhuZQ fbK1gQNhfVBTPtBvBK56bKawqJsiniVfeZ+lWglqHPie/W/U5Z9PRU9ekRmgB+9Qf4q+ MVWbkhqMSENGsBtNA8lqrkSTMZuULLuC0jFXIgt4Kl/zozNPf/XWUY6RMv85I79Qkh1n 1vls35hWC+JHSD2njTmZAw+fCwbs+3r107BuDOEaCnbme1kL8XA5IPaCqVVRUZe19nwJ KEyF2PrDP952DxVLEVGmxMl+RrZUPqNZmrdk7GAELx/BvoZL94pLthnYF2XFp8JzUu9L HZTA== X-Gm-Message-State: AOUpUlG8a+K0cGpdjHQ9NWiRlsFXTTRLKEeXkA8o28hfFpLPt3at2hz2 riqPk2xq+StcZaGwFsifa5owJBY1RHg= X-Google-Smtp-Source: AAOMgpdlAqZwexqtRUFut+0tE2L4hilD8ll6oTYv0wVxW4z1IUAFKBsJ+cqy7zTQfmC0WP530J3fwQ== X-Received: by 2002:a17:902:8541:: with SMTP id d1-v6mr3324677plo.81.1532637288776; Thu, 26 Jul 2018 13:34:48 -0700 (PDT) Received: from vader.thefacebook.com ([2620:10d:c090:200::7:a703]) by smtp.gmail.com with ESMTPSA id y3-v6sm2960235pge.29.2018.07.26.13.34.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Jul 2018 13:34:48 -0700 (PDT) From: Omar Sandoval To: linux-btrfs@vger.kernel.org Cc: kernel-team@fb.com, David Sterba Subject: [PATCH v2 2/2] btrfs-progs: add --disable-shared and --disable-static Date: Thu, 26 Jul 2018 13:34:39 -0700 Message-Id: <5c00de1c7367440a147a7afebb418ed67db3747b.1532637115.git.osandov@fb.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Omar Sandoval The build system mentioned in the previous commit builds libraries in both PIC and non-PIC mode. Shared libraries don't work in PIC mode, so it expects a --disable-shared configure option, which most open source libraries using autoconf have. Let's add it, too. Signed-off-by: Omar Sandoval --- Makefile | 17 ++++++++++++++--- Makefile.inc.in | 2 ++ configure.ac | 18 +++++++++++++++++- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 24aa8234..f4ab14ea 100644 --- a/Makefile +++ b/Makefile @@ -275,6 +275,13 @@ libs_shared = libbtrfs.so.0.1 libbtrfsutil.so.$(libbtrfsutil_version) libs_static = libbtrfs.a libbtrfsutil.a libs = $(libs_shared) $(libs_static) lib_links = libbtrfs.so.0 libbtrfs.so libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so +libs_build = +ifeq ($(BUILD_SHARED_LIBRARIES),1) +libs_build += $(libs_shared) $(lib_links) +endif +ifeq ($(BUILD_STATIC_LIBRARIES),1) +libs_build += $(libs_static) +endif # make C=1 to enable sparse ifdef C @@ -311,7 +318,7 @@ endif $(Q)$(CC) $(STATIC_CFLAGS) -c $< -o $@ $($(subst -,_,$(@:%.static.o=%)-cflags)) \ $($(subst -,_,btrfs-$(@:%/$(notdir $@)=%)-cflags)) -all: $(progs_build) $(libs) $(lib_links) $(BUILDDIRS) +all: $(progs_build) $(libs_build) $(BUILDDIRS) ifeq ($(PYTHON_BINDINGS),1) all: libbtrfsutil_python endif @@ -635,7 +642,7 @@ $(CLEANDIRS): @echo "Cleaning $(patsubst clean-%,%,$@)" $(Q)$(MAKE) $(MAKEOPTS) -C $(patsubst clean-%,%,$@) clean -install: $(libs) $(progs_install) $(INSTALLDIRS) +install: $(libs_build) $(progs_install) $(INSTALLDIRS) ifeq ($(BUILD_PROGRAMS),1) $(INSTALL) -m755 -d $(DESTDIR)$(bindir) $(INSTALL) $(progs_install) $(DESTDIR)$(bindir) @@ -647,12 +654,16 @@ ifneq ($(udevdir),) $(INSTALL) -m644 $(udev_rules) $(DESTDIR)$(udevruledir) endif endif +ifneq ($(libs_build),) $(INSTALL) -m755 -d $(DESTDIR)$(libdir) - $(INSTALL) $(libs) $(DESTDIR)$(libdir) + $(INSTALL) $(libs_build) $(DESTDIR)$(libdir) +ifeq ($(BUILD_SHARED_LIBRARIES),1) cp -d $(lib_links) $(DESTDIR)$(libdir) +endif $(INSTALL) -m755 -d $(DESTDIR)$(incdir)/btrfs $(INSTALL) -m644 $(libbtrfs_headers) $(DESTDIR)$(incdir)/btrfs $(INSTALL) -m644 libbtrfsutil/btrfsutil.h $(DESTDIR)$(incdir) +endif ifeq ($(PYTHON_BINDINGS),1) install_python: libbtrfsutil_python diff --git a/Makefile.inc.in b/Makefile.inc.in index 5c8d1297..a86c528e 100644 --- a/Makefile.inc.in +++ b/Makefile.inc.in @@ -13,6 +13,8 @@ INSTALL = @INSTALL@ DISABLE_DOCUMENTATION = @DISABLE_DOCUMENTATION@ DISABLE_BTRFSCONVERT = @DISABLE_BTRFSCONVERT@ BUILD_PROGRAMS = @BUILD_PROGRAMS@ +BUILD_SHARED_LIBRARIES = @BUILD_SHARED_LIBRARIES@ +BUILD_STATIC_LIBRARIES = @BUILD_STATIC_LIBRARIES@ BTRFSCONVERT_EXT2 = @BTRFSCONVERT_EXT2@ BTRFSCONVERT_REISERFS = @BTRFSCONVERT_REISERFS@ BTRFSRESTORE_ZSTD = @BTRFSRESTORE_ZSTD@ diff --git a/configure.ac b/configure.ac index 230f37fa..df02f206 100644 --- a/configure.ac +++ b/configure.ac @@ -125,6 +125,20 @@ AC_ARG_ENABLE([programs], AS_IF([test "x$enable_programs" = xyes], [BUILD_PROGRAMS=1], [BUILD_PROGRAMS=0]) AC_SUBST([BUILD_PROGRAMS]) +AC_ARG_ENABLE([shared], + AS_HELP_STRING([--disable-shared], [do not build shared libraries]), + [], [enable_shared=yes] +) +AS_IF([test "x$enable_shared" = xyes], [BUILD_SHARED_LIBRARIES=1], [BUILD_SHARED_LIBRARIES=0]) +AC_SUBST([BUILD_SHARED_LIBRARIES]) + +AC_ARG_ENABLE([static], + AS_HELP_STRING([--disable-static], [do not build static libraries]), + [], [enable_static=yes] +) +AS_IF([test "x$enable_static" = xyes], [BUILD_STATIC_LIBRARIES=1], [BUILD_STATIC_LIBRARIES=0]) +AC_SUBST([BUILD_STATIC_LIBRARIES]) + AC_ARG_ENABLE([convert], AS_HELP_STRING([--disable-convert], [do not build btrfs-convert]), [], [enable_convert=$enable_programs] @@ -222,7 +236,7 @@ AC_SUBST(BTRFSRESTORE_ZSTD) AC_ARG_ENABLE([python], AS_HELP_STRING([--disable-python], [do not build libbtrfsutil Python bindings]), - [], [enable_python=yes] + [], [enable_python=$enable_shared] ) if test "x$enable_python" = xyes; then @@ -285,6 +299,8 @@ AC_MSG_RESULT([ ldflags: ${LDFLAGS} programs: ${enable_programs} + shared libraries: ${enable_shared} + static libraries: ${enable_static} documentation: ${enable_documentation} doc generator: ${ASCIIDOC_TOOL} backtrace support: ${enable_backtrace}