[ 
https://issues.apache.org/jira/browse/TS-4375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15260494#comment-15260494
 ] 

ASF subversion and git services commented on TS-4375:
-----------------------------------------------------

Commit cbf10fd45fa8429dc9b700252fff1a749d252bfa in trafficserver's branch 
refs/heads/master from [[email protected]]
[ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=cbf10fd ]

TS-4375: Fix PCRE link issues on Darwin.

Darwin has a copy of PCRE in the SDK, but it has JIT disabled. When
we use pkg-config to find the PCRE version, we find the Homebrew
version in /usr/local which does have JIT enabled. Now, we end up
searching for Expat in the SDK so the SDK ends up in our library
search path causing us to find the wrong version of libpcre. Link
failures ensue.

Since it is so trivial to just use expat from Homebrew, remove the
SDK path search and tidy up the XML m4 macros to be a bit more
informative.


> link failure if PCRE JIT is not enabled
> ---------------------------------------
>
>                 Key: TS-4375
>                 URL: https://issues.apache.org/jira/browse/TS-4375
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Build
>            Reporter: James Peach
>            Assignee: James Peach
>             Fix For: 7.0.0
>
>
> This is on Darwin with Homebrew PCRE:
> {code}
> libtool: link: c++ -dynamiclib  -o .libs/libtsutil.7.dylib  .libs/Arena.o 
> .libs/BaseLogFile.o .libs/Bitops.o .libs/ConsistentHash.o .libs/ContFlags.o 
> .libs/Diags.o .libs/EventNotify.o .libs/Hash.o .libs/HashFNV.o 
> .libs/HashMD5.o .libs/HashSip.o .libs/HostLookup.o .libs/IpMap.o 
> .libs/IpMapConf.o .libs/Layout.o .libs/MMH.o .libs/MatcherUtils.o 
> .libs/ParseRules.o .libs/RawHashTable.o .libs/RbTree.o .libs/Regex.o 
> .libs/Regression.o .libs/TextBuffer.o .libs/Tokenizer.o .libs/Vec.o 
> .libs/Version.o .libs/fastlz.o .libs/hugepages.o .libs/ink_args.o 
> .libs/ink_assert.o .libs/ink_base64.o .libs/ink_cap.o .libs/ink_code.o 
> .libs/ink_defs.o .libs/ink_error.o .libs/ink_file.o .libs/ink_hash_table.o 
> .libs/ink_hrtime.o .libs/ink_inet.o .libs/ink_memory.o .libs/ink_mutex.o 
> .libs/ink_queue.o .libs/ink_queue_utils.o .libs/ink_rand.o 
> .libs/ink_res_init.o .libs/ink_res_mkquery.o .libs/ink_resource.o 
> .libs/ink_rwlock.o .libs/ink_sock.o .libs/ink_sprintf.o 
> .libs/ink_stack_trace.o .libs/ink_string++.o .libs/ink_string.o 
> .libs/ink_sys_control.o .libs/ink_syslog.o .libs/ink_thread.o 
> .libs/ink_time.o .libs/llqueue.o .libs/lockfile.o .libs/signals.o 
> .libs/X509HostnameValidator.o   -L/usr/local/Cellar/openssl/1.0.2g/lib 
> -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib
>  -L/usr/local/Cellar/pcre/8.38/lib -lssl -lcrypto -ltcl -lresolv -lc -lpcre 
> -lexpat  -g -mcx16   -install_name  /opt/ats/lib/libtsutil.7.dylib 
> -compatibility_version 8 -current_version 8.0 -Wl,-single_module
> Undefined symbols for architecture x86_64:
>   "_pcre_assign_jit_stack", referenced from:
>       Regex::compile(char const*, unsigned int) in Regex.o
>   "_pcre_free_study", referenced from:
>       Regex::~Regex() in Regex.o
>   "_pcre_jit_stack_alloc", referenced from:
>       get_jit_stack(void*) in Regex.o
>   "_pcre_jit_stack_free", referenced from:
>       RegexThreadKey::RegexThreadKey() in Regex.o
> ld: symbol(s) not found for architecture x86_64
> {code}
> It looks like the PCRE JIT code checks for {{PCRE_CONFIG_JIT}}, but that 
> would always be defined so that apps can make runtime checks for JIT support.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to