>
>
> Lets look at the symbols in APR object files:
>
> atomic/unix/builtin.o
> atomic/unix/mutex.o
> atomic/unix/solaris.o
>
> You can run nm on those files to see which symbols they provide and
> which are undefined. Only one of the files should have symbols, the
> other two are effectively empty.
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nm.html
>
> For the original build the file builtin.o is the one that should have
> symbols. You should see various svn_atomic defined (T) and various
> __sync undefined (U). nm should report no symbols for the other two
> files.
>
> For the --disable-nonportable-atomics build the apr_atomic symbols
> should move to the mutex.o file, but there should no longer be any
> reference to __sync symbols. builtin.o should have no symbols.
>
> Finally for the build with USE_ATOMICS_GENERIC and HAVE_ATOMIC_BUILTINS
> unset the apr_atomic symbols should move to solaris.o and there should
> be no reference to __sync symbols. builtin.o should have no symbols.
>
> Can you confirm that is what happens?
>
So with USE_ATOMICS_GENERIC I have this:
solaris.o:
[Index] Value Size Type Bind Other Shndx Name
mutex.o:
[Index] Value Size Type Bind Other Shndx Name
[33] | 0| 0|FUNC |GLOB |0 |UNDEF |abort
[37] | 512| 107|FUNC |GLOB |0 |2 |apr_atomic_add32
[41] | 928| 110|FUNC |GLOB |0 |2 |apr_atomic_cas32
[43] | 1152| 96|FUNC |GLOB |0 |2 |apr_atomic_casptr
[40] | 800| 107|FUNC |GLOB |0 |2 |apr_atomic_dec32
[39] | 736| 35|FUNC |GLOB |0 |2 |apr_atomic_inc32
[27] | 64| 176|FUNC |GLOB |0 |2 |apr_atomic_init
[34] | 384| 35|FUNC |GLOB |0 |2 |apr_atomic_read32
[35] | 448| 63|FUNC |GLOB |0 |2 |apr_atomic_set32
[38] | 640| 74|FUNC |GLOB |0 |2 |apr_atomic_sub32
[42] | 1056| 96|FUNC |GLOB |0 |2 |apr_atomic_xchg32
[44] | 1248| 88|FUNC |GLOB |0 |2 |apr_atomic_xchgptr
[28] | 0| 0|FUNC |GLOB |0 |UNDEF |apr_palloc
[29] | 0| 0|FUNC |GLOB |0 |UNDEF
|apr_pool_cleanup_null
[30] | 0| 0|FUNC |GLOB |0 |UNDEF
|apr_pool_cleanup_register
[31] | 0| 0|FUNC |GLOB |0 |UNDEF
|apr_thread_mutex_create
[32] | 0| 0|FUNC |GLOB |0 |UNDEF
|apr_thread_mutex_lock
[36] | 0| 0|FUNC |GLOB |0 |UNDEF
|apr_thread_mutex_unlock
builtins.o:
[Index] Value Size Type Bind Other Shndx Name
-bash-3.2# for i in solaris.o mutex.o builtins.o ; do nm -u $i; done
Undefined symbols from solaris.o:
Undefined symbols from mutex.o:
abort
apr_palloc
apr_pool_cleanup_null
apr_pool_cleanup_register
apr_thread_mutex_create
apr_thread_mutex_lock
apr_thread_mutex_unlock
Undefined symbols from builtins.o:
With the default build I have this:
Undefined symbols from solaris.o:
Undefined symbols from mutex.o:
Undefined symbols from builtins.o:
bash-3.2# for i in solaris.o mutex.o builtins.o ; do nm -g $i; done
solaris.o:
[Index] Value Size Type Bind Other Shndx Name
mutex.o:
[Index] Value Size Type Bind Other Shndx Name
builtins.o:
[Index] Value Size Type Bind Other Shndx Name
[27] | 128| 30|FUNC |GLOB |0 |2 |apr_atomic_add32
[31] | 288| 100|FUNC |GLOB |0 |2 |apr_atomic_cas32
[33] | 480| 88|FUNC |GLOB |0 |2 |apr_atomic_casptr
[30] | 224| 35|FUNC |GLOB |0 |2 |apr_atomic_dec32
[29] | 192| 32|FUNC |GLOB |0 |2 |apr_atomic_inc32
[24] | 0| 25|FUNC |GLOB |0 |2 |apr_atomic_init
[25] | 32| 35|FUNC |GLOB |0 |2 |apr_atomic_read32
[26] | 96| 13|FUNC |GLOB |0 |2 |apr_atomic_set32
[28] | 160| 17|FUNC |GLOB |0 |2 |apr_atomic_sub32
[32] | 416| 55|FUNC |GLOB |0 |2 |apr_atomic_xchg32
[34] | 576| 55|FUNC |GLOB |0 |2 |apr_atomic_xchgptr
So I don't see any __sync symbols anywhere..
Does this mean they're in another dependency somewhere?
Cheers
Ian
--
*IAN MORDEY* HEAD OF INFRASTRUCTURE
*wandisco.com* <http://www.wandisco.com/>
--
World Leader in Active Data Replication™
*Find out more wandisco.com <http://wandisco.com/>*
THIS MESSAGE AND ANY ATTACHMENTS ARE CONFIDENTIAL, PROPRIETARY AND MAY BE
PRIVILEGED
If this message was misdirected, WANdisco, Inc. and its subsidiaries,
("WANdisco") does not waive any confidentiality or privilege. If you are
not the intended recipient, please notify us immediately and destroy the
message without disclosing its contents to anyone. Any distribution, use or
copying of this email or the information it contains by other than an
intended recipient is unauthorized. The views and opinions expressed in
this email message are the author's own and may not reflect the views and
opinions of WANdisco, unless the author is authorized by WANdisco to
express such views or opinions on its behalf. All email sent to or from
this address is subject to electronic storage and review by WANdisco.
Although WANdisco operates anti-virus programs, it does not accept
responsibility for any damage whatsoever caused by viruses being passed.