Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 24693429E2E for ; Sun, 26 Jun 2011 18:09:16 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -2.3 X-Spam-Level: X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x4qPmiQ+xD7d for ; Sun, 26 Jun 2011 18:09:15 -0700 (PDT) Received: from tempo.its.unb.ca (tempo.its.unb.ca [131.202.1.21]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 4D3FD431FD0 for ; Sun, 26 Jun 2011 18:09:15 -0700 (PDT) Received: from zancas.localnet (fctnnbsc30w-142167176081.pppoe-dynamic.High-Speed.nb.bellaliant.net [142.167.176.81]) (authenticated bits=0) by tempo.its.unb.ca (8.13.8/8.13.8) with ESMTP id p5R1990I020741 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Sun, 26 Jun 2011 22:09:11 -0300 Received: from bremner by zancas.localnet with local (Exim 4.76) (envelope-from ) id 1Qb0K5-0005hw-1M; Sun, 26 Jun 2011 22:09:09 -0300 From: david@tethera.net To: notmuch@notmuchmail.org Subject: [PATCH] libnotmuch: build symbols list without relying on gcc -aux-info. Date: Sun, 26 Jun 2011 22:08:52 -0300 Message-Id: <1309136932-21910-1-git-send-email-david@tethera.net> X-Mailer: git-send-email 1.7.5.4 Cc: David Bremner X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jun 2011 01:09:17 -0000 From: David Bremner Carl reports "gcc -aux-info notmuch.aux lib/notmuch.h" does not generate notmuch.aux for him with Debian gcc 4.6.0-8. A small modification of the original sed regular expression allows us to work directly from lib/notmuch.h, rather than preprocessing with gcc. As with most such simple regex based "parsing", this is quite sensitive to the input format, and needs that each symbol to be exported from libnotmuch should - start with "notmuch_" - be the first non-whitespace token on the line - be followed by an open parenthesis. --- lib/Makefile.local | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/Makefile.local b/lib/Makefile.local index a33ba34..0459fd0 100644 --- a/lib/Makefile.local +++ b/lib/Makefile.local @@ -76,9 +76,8 @@ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym $(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@ notmuch.sym: lib/notmuch.h - gcc -aux-info notmuch.aux $< printf "{\nglobal:\n" > notmuch.sym - sed -n 's/.*\(notmuch_[a-z_]*\) (.*/\t\1;/p' notmuch.aux >> notmuch.sym + sed -n 's/^\s*\(notmuch_[a-z_]*\)\s*(.*/\t\1;/p' $< >> notmuch.sym printf "local: *;\n};\n" >> notmuch.sym $(dir)/$(SONAME): $(dir)/$(LIBNAME) @@ -103,4 +102,4 @@ install-$(dir): $(dir)/$(LIBNAME) $(LIBRARY_INSTALL_POST_COMMAND) SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs) -CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a notmuch.aux notmuch.sym +CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a notmuch.sym -- 1.7.5.4