RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1217111 - add -pthread to pkg-config
Summary: add -pthread to pkg-config
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: pcre
Version: 7.1
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: ---
Assignee: Petr Pisar
QA Contact: Jan Kepler
URL: http://bugs.exim.org/show_bug.cgi?id=...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-04-29 14:57 UTC by Petr Pisar
Modified: 2015-11-19 05:15 UTC (History)
3 users (show)

Fixed In Version: pcre-8.32-15.el7
Doc Type: Bug Fix
Doc Text:
Linking an application to the static PCRE library using the libpcre module for pkg-config was failing due to missing pthread symbols. The pkg-config modules for PCRE libraries have been updated to declare private libraries properly, and the "pkg-config --static --libs libpcre" command can now be used to link the static pcre library to an application.
Clone Of: 1214494
Environment:
Last Closed: 2015-11-19 05:15:22 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Upstream fix (1.61 KB, patch)
2015-04-29 14:57 UTC, Petr Pisar
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:2142 0 normal SHIPPED_LIVE pcre bug fix update 2015-11-19 08:16:47 UTC

Description Petr Pisar 2015-04-29 14:57:17 UTC
Created attachment 1020220 [details]
Upstream fix

+++ This bug was initially created as a clone of Bug #1214494 +++

+++ This bug was initially created as a clone of Bug #1185266 +++

pcre.pc is incomplete and static builds against pcre are broken

Actual results:

$ pkg-config --static --libs libpcre
-lpcre

$ cat test_pcre.c 
#include <pcre.h>

int main() {
        pcre_jit_free_unused_memory();
        return 0;
}

$ gcc -static test_pcre.c `pkg-config --static --libs libpcre`               
/usr/lib/gcc/x86_64-redhat-linux/5.0.1/../../../../lib64/libpcre.a(libpcre_la-pcre_jit_compile.o): In function `sljit_generate_code':
(.text+0x6b1): undefined reference to `pthread_mutex_lock'
/usr/lib/gcc/x86_64-redhat-linux/5.0.1/../../../../lib64/libpcre.a(libpcre_la-pcre_jit_compile.o): In function `sljit_generate_code':
(.text+0x7a6): undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/x86_64-redhat-linux/5.0.1/../../../../lib64/libpcre.a(libpcre_la-pcre_jit_compile.o): In function `sljit_generate_code':
(.text+0xb31): undefined reference to `pthread_mutex_unlock'
...


Expected results:

$ pkg-config --static --libs libpcre
-lpcre -pthread 

$ gcc -static test_pcre.c `pkg-config --static --libs libpcre`

$

--- Additional comment from Petr Pisar on 2015-04-23 12:44:02 GMT ---

This patch fixes it.

The `-static' gcc patch forces searching for static libpthread library which is provided by glibc-static. I could add glibc-static to run-time dependencies of pcre-static, however it's not really necessary because one can link against /usr/lib64/libpcre.a directly without the -static option (and pkg-config), and then the glibc-static package is not needed. Also with -static, one needs static libc because of the main program entry point. So the dependency can bee seen as a dependency of the compiled program, not pcre-static. I'm not sure about the dependency.

[...]
----

pcre-static-8.32-14.el7.x86_64 is affected.

You can use this code to compile because the original example uses a symbol not yet provided by this PCRE version:

#include <pcre.h>
int main() {
        pcre_jit_stack *stack;
        stack = pcre_jit_stack_alloc(64, 64);
        pcre_jit_stack_free(stack);
        return 0;
}

Comment 7 errata-xmlrpc 2015-11-19 05:15:22 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-2142.html


Note You need to log in before you can comment on or make changes to this bug.