On Wed, Mar 31, 2010 at 05:50:14PM +0200, Paolo Bonzini wrote: > >>>> [MacPro:darwin_objdir/x86_64-apple-darwin10.3.0/libgcc] howarth% nm >>>> libgcc_ext.10.5.dylib | grep emutls >>>> 00013e70 T ___emutls_get_address >>>> 00014070 T ___emutls_register_common >>> >>> I suppose they are not exported. >>> >>> Richard. >> >> Richard, >> Shouldn't these still show up in the output from... >> >> nm libgcc_s.1.dylib | grep emutls >> >> with a lower case symbol type? > > Not if they end up as private_extern symbols (i.e. hidden in GCC/ELF > parlance). > > Paolo
Paolo, So are you saying that we need to use... Index: gcc/tree-profile.c =================================================================== --- gcc/tree-profile.c (revision 157873) +++ gcc/tree-profile.c (working copy) @@ -79,7 +79,7 @@ get_identifier ("__gcov_indirect_call_callee"), ptr_void); TREE_STATIC (ic_void_ptr_var) = 1; - TREE_PUBLIC (ic_void_ptr_var) = 0; + TREE_PUBLIC (ic_void_ptr_var) = 1; DECL_ARTIFICIAL (ic_void_ptr_var) = 1; DECL_INITIAL (ic_void_ptr_var) = NULL; DECL_TLS_MODEL (ic_void_ptr_var) = decl_default_tls_model (ic_void_ptr_var); @@ -91,7 +91,7 @@ get_identifier ("__gcov_indirect_call_counters"), gcov_type_ptr); TREE_STATIC (ic_gcov_type_ptr_var) = 1; - TREE_PUBLIC (ic_gcov_type_ptr_var) = 0; + TREE_PUBLIC (ic_gcov_type_ptr_var) = 1; DECL_ARTIFICIAL (ic_gcov_type_ptr_var) = 1; DECL_INITIAL (ic_gcov_type_ptr_var) = NULL; DECL_TLS_MODEL (ic_gcov_type_ptr_var) = decl_default_tls_model (ic_gcov_type_ptr_var); I assume also adding... Index: tree-profile.c =================================================================== --- tree-profile.c (revision 157873) +++ tree-profile.c (working copy) @@ -64,8 +64,8 @@ /* Do initialization work for the edge profiler. */ /* Add code: - static gcov* __gcov_indirect_call_counters; // pointer to actual counter - static void* __gcov_indirect_call_callee; // actual callee address + static gcov* __gcov_indirect_call_counters __attribute__ ((visibility("default")); // pointer to actual counter + static void* __gcov_indirect_call_callee __attribute__ ((visibility("default")); // actual callee address */ static void tree_init_ic_make_global_vars (void) would be redundant. Or do we just really need to delete the TREE_PUBLIC's instead... Index: tree-profile.c =================================================================== --- tree-profile.c (revision 157873) +++ tree-profile.c (working copy) @@ -79,7 +79,6 @@ get_identifier ("__gcov_indirect_call_callee"), ptr_void); TREE_STATIC (ic_void_ptr_var) = 1; - TREE_PUBLIC (ic_void_ptr_var) = 0; DECL_ARTIFICIAL (ic_void_ptr_var) = 1; DECL_INITIAL (ic_void_ptr_var) = NULL; DECL_TLS_MODEL (ic_void_ptr_var) = decl_default_tls_model (ic_void_ptr_var); @@ -91,7 +90,6 @@ get_identifier ("__gcov_indirect_call_counters"), gcov_type_ptr); TREE_STATIC (ic_gcov_type_ptr_var) = 1; - TREE_PUBLIC (ic_gcov_type_ptr_var) = 0; DECL_ARTIFICIAL (ic_gcov_type_ptr_var) = 1; DECL_INITIAL (ic_gcov_type_ptr_var) = NULL; DECL_TLS_MODEL (ic_gcov_type_ptr_var) = decl_default_tls_model (ic_gcov_type_ptr_var); Thanks in advance for any advice on this. Jack