This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Enable hidden visibility in libc.a compiled with PIE
- From: Florian Weimer <fweimer at redhat dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 21 Aug 2017 17:52:15 +0200
- Subject: Re: [PATCH] Enable hidden visibility in libc.a compiled with PIE
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=fweimer at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5C1E8C047B96
- References: <20170808164040.GA31184@gmail.com> <f00bd6ea-6b8c-a113-7810-b90abd03a47a@redhat.com>
On 08/21/2017 05:48 PM, Florian Weimer wrote:
> On 08/08/2017 06:40 PM, H.J. Lu wrote:
>> -#if defined SHARED || defined LIBC_NONSHARED
>> +#if defined SHARED || defined LIBC_NONSHARED \
>> + || (BUILD_PIE_DEFAULT && IS_IN (libc))
>> # define attribute_hidden __attribute__ ((visibility ("hidden")))
>> #else
>> # define attribute_hidden
>
> I think this broke “make subdirs=benchtests bench-build” because
> json-lib.c is erroneously compiled with -DMODULE_NAME=libc.
I think this fixes it.
Florian
benchtests: Do not compile benchmark helper objects as libc modules
Otherwise, this will lead to link failures due to hidden symbol
references.
2017-08-21 Florian Weimer <fweimer@redhat.com>
Do not compile benchmark helper objects with -DMODULE_NAME=libc.
* benchtests/Makefile (others-extras): Set to $(bench-extra-objs).
Move before inclusion of ../Rules.
diff --git a/benchtests/Makefile b/benchtests/Makefile
index 37788e8c31..a0c3470398 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -93,6 +93,11 @@ $(objpfx)bench-malloc-thread: $(shared-thread-library)
# affect their performance.
.NOTPARALLEL:
+bench-extra-objs = json-lib.o
+
+extra-objs += $(bench-extra-objs)
+others-extras = $(bench-extra-objs)
+
include ../Rules
binaries-bench := $(addprefix $(objpfx)bench-,$(bench))
@@ -125,10 +130,6 @@ cpp-srcs-left := $(binaries-benchset:=.c) $(binaries-bench:=.c) \
lib := nonlib
include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-bench-extra-objs = json-lib.o
-
-extra-objs += $(bench-extra-objs)
-
bench-deps := bench-skeleton.c bench-timing.h Makefile
run-bench = $(test-wrapper-env) \