Re: Extra symbols returned by check-exports when building 0.8.4 on Lucid.



On Wed, 2011-05-04 at 09:57 -0400, Mathieu Trudel-Lapierre wrote:
> Hi,
> 
> As discussed on IRC; I'm finding some extra symbols when I try to
> build 0.8.4 on Lucid. I suspect these are due to the older kernel and
> older GCC, but I admit I haven't really dug into the exact cause so
> much.
> 
> The extra symbols are returned by the objdump -t "$so" | grep
> "[.]hidden.*" command run in tools/check-exports.sh:
> 
> 00040ff4 l     O *ABS*  00000000              .hidden _GLOBAL_OFFSET_TABLE_
> 00041380 l     O .data  00000000              .hidden __dso_handle
> 000406e8 l     O .dtors 00000000              .hidden __DTOR_END__
> 0000fbe4 l     F .text  00000000              .hidden __i686.get_pc_thunk.cx
> 0002f980 l     F .text  00000014              .hidden __stack_chk_fail_local
> 0000b1e7 l     F .text  00000000              .hidden __i686.get_pc_thunk.bx
> 00040e60 l     O *ABS*  00000000              .hidden _DYNAMIC
> 
> This was returned by the same objdump command and grep on i386. The
> symbols on amd64 are similar, with a slight difference:
> 
> ../tools/check-exports.sh ./.libs/libnm-util.so ./libnm-util.ver
> ./.libs/libnm-util.so: checking exported symbols against ./libnm-util.ver
> --- ./libnm-util.ver	2011-05-04 13:34:48.000000000 +0000
> +++ -	2011-05-04 13:37:42.782033236 +0000
> @@ -1,5 +1,10 @@
>  {
>  global:
> +	_DYNAMIC;
> +	_GLOBAL_OFFSET_TABLE_;
> +	__DTOR_END__;
> +	__dso_handle;
> +	atexit;
>  	nm_connection_add_setting;
>  	nm_connection_clear_secrets;
>  	nm_connection_compare;
> 
> I suspect atexit also comes from the hidden symbols, but I haven't
> been able to verify this yet (time to build a x86_64 VM).
> 
> Is there any way to properly exclude them so tests succeed?

Yeah, done and pushed.  If you want a less-invasive version than the one
I pushed (though my patches do expose some previously hidden, but
should-have-been exported symbols which was the point of
check-exports.sh in the first place...) then you can simply kill the
second objdump+grep of get_symbols() in check-exports.sh.

Dan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]