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

James Peach commented on TS-4375:
---------------------------------

OK I figured this out.

What happens is that PCRE is linked from the OS X SDK root not from the 
Homebrew version. The SDK version doesn't have JIT enabled. We end up using the 
SDK root paths because that is where we find expat.

The workaround is:
{code}
$ brew install expat
$ brew link --force expat
{code}

> 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: Phil Sorber
>             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