Changeset e10714a
- Timestamp:
- Mar 27, 2023, 9:58:08 PM (20 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- 60380a1
- Parents:
- 4eebbcc
- Location:
- libcfa/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/interpose.cfa
r4eebbcc re10714a 10 10 // Created On : Wed Mar 29 16:10:31 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Mar 13 22:39:12202313 // Update Count : 19 312 // Last Modified On : Mon Mar 27 21:09:03 2023 13 // Update Count : 196 14 14 // 15 15 … … 40 40 union { generic_fptr_t fptr; void * ptr; } originalFunc; 41 41 42 #if defined( _GNU_SOURCE ) 43 if ( version ) { 44 originalFunc.ptr = dlvsym( library, symbol, version ); 45 } else { 46 originalFunc.ptr = dlsym( library, symbol ); 47 } // if 48 #else 42 49 originalFunc.ptr = dlsym( library, symbol ); 43 if ( ! originalFunc.ptr ) { // == nullptr 50 #endif // _GNU_SOURCE 51 52 if ( ! originalFunc.ptr ) { // == nullptr 44 53 abort( "interpose_symbol : internal error, %s\n", dlerror() ); 45 54 } // if … … 49 58 static generic_fptr_t interpose_symbol( const char symbol[], const char version[] ) { 50 59 void * library; 60 51 61 #if defined( RTLD_NEXT ) 52 62 library = RTLD_NEXT; -
libcfa/src/interpose_thread.cfa
r4eebbcc re10714a 14 14 // 15 15 16 // BUG in 32-bit gcc with interpose: fixed in >= gcc-9.5, gcc-10.4, gcc-12.2 16 17 #ifdef __i386__ // 32-bit architecture 17 18 #undef _GNU_SOURCE … … 33 34 typedef void (* generic_fptr_t)(void); 34 35 35 generic_fptr_t interpose_symbol(36 generic_fptr_t libcfa_public interpose_symbol( 36 37 generic_fptr_t (*do_interpose_symbol)( void * library, const char symbol[], const char version[] ), 37 38 const char symbol[], 38 39 const char version[] 39 ) libcfa_public{40 ) { 40 41 void * library; 41 42
Note: See TracChangeset
for help on using the changeset viewer.