You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2015/05/12 16:14:31 UTC
[3/7] lucy-clownfish git commit: Export OFFSET vars for `final`
methods.
Export OFFSET vars for `final` methods.
Without the export, symbol resolution fails during dynamic linking.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/5bcadfd0
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/5bcadfd0
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/5bcadfd0
Branch: refs/heads/master
Commit: 5bcadfd0094adc7521dd3ab4dcc6c69017902870
Parents: 8889581
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Fri May 8 19:05:31 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Mon May 11 17:22:33 2015 -0700
----------------------------------------------------------------------
compiler/src/CFCBindMethod.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/5bcadfd0/compiler/src/CFCBindMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCBindMethod.c b/compiler/src/CFCBindMethod.c
index cede011..3f7bccd 100644
--- a/compiler/src/CFCBindMethod.c
+++ b/compiler/src/CFCBindMethod.c
@@ -48,6 +48,7 @@ CFCBindMeth_method_def(CFCMethod *method, CFCClass *klass) {
* this method may not be overridden. */
static char*
S_final_method_def(CFCMethod *method, CFCClass *klass) {
+ const char *PREFIX = CFCClass_get_PREFIX(klass);
const char *self_type = CFCType_to_c(CFCMethod_self_type(method));
const char *arg_names
= CFCParamList_name_list(CFCMethod_get_param_list(method));
@@ -57,12 +58,12 @@ S_final_method_def(CFCMethod *method, CFCClass *klass) {
char *full_offset_sym = CFCMethod_full_offset_sym(method, klass);
const char pattern[] =
- "extern size_t %s;\n"
+ "extern %sVISIBLE size_t %s;\n"
"#define %s(%s) \\\n"
" %s((%s)%s)\n";
char *method_def
- = CFCUtil_sprintf(pattern, full_offset_sym, full_meth_sym, arg_names,
- full_func_sym, self_type, arg_names);
+ = CFCUtil_sprintf(pattern, PREFIX, full_offset_sym, full_meth_sym,
+ arg_names, full_func_sym, self_type, arg_names);
FREEMEM(full_offset_sym);
FREEMEM(full_meth_sym);