Message ID | 1461075387-27291-1-git-send-email-bill.fischofer@linaro.org |
---|---|
State | Superseded |
Headers | show |
On 19 April 2016 at 10:16, Bill Fischofer <bill.fischofer@linaro.org> wrote: > From: Anders Roxell <anders.roxell@linaro.org> > > Internal functions should not be part of symbols that are visible > outside the library. Using -fvisibility=hidden hides all internal > functions from the public ABI. > > Suggested-by: Ricardo Salveti <ricardo.salveti@linaro.org> > Signed-off-by: Anders Roxell <anders.roxell@linaro.org> > Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> > --- > Changes for v7: > - Rename abi_begin/end to visibility_begin/end to clarify intent of patch > > Changes for v6: > - Include abi_begin/end.h in platform/linux-generic/Makefile.am > > Changes for v5: > - Switch to use of odp/api/abi_begin/end.h to isolate #pragmas > > include/odp/api/spec/align.h | 2 ++ > include/odp/api/spec/atomic.h | 2 ++ > include/odp/api/spec/barrier.h | 2 ++ > include/odp/api/spec/buffer.h | 3 ++- > include/odp/api/spec/byteorder.h | 2 ++ > include/odp/api/spec/classification.h | 3 ++- > include/odp/api/spec/compiler.h | 2 ++ > include/odp/api/spec/config.h | 2 ++ > include/odp/api/spec/cpu.h | 2 ++ > include/odp/api/spec/cpumask.h | 2 ++ > include/odp/api/spec/crypto.h | 2 ++ > include/odp/api/spec/debug.h | 3 ++- > include/odp/api/spec/errno.h | 2 ++ > include/odp/api/spec/event.h | 3 ++- > include/odp/api/spec/hash.h | 2 ++ > include/odp/api/spec/hints.h | 2 ++ > include/odp/api/spec/init.h | 4 ++-- > include/odp/api/spec/packet.h | 2 ++ > include/odp/api/spec/packet_flags.h | 2 ++ > include/odp/api/spec/packet_io.h | 2 ++ > include/odp/api/spec/packet_io_stats.h | 2 ++ > include/odp/api/spec/pool.h | 4 ++-- > include/odp/api/spec/queue.h | 2 ++ > include/odp/api/spec/random.h | 3 ++- > include/odp/api/spec/rwlock.h | 2 ++ > include/odp/api/spec/rwlock_recursive.h | 2 ++ > include/odp/api/spec/schedule.h | 3 ++- > include/odp/api/spec/schedule_types.h | 2 ++ > include/odp/api/spec/shared_memory.h | 3 ++- > include/odp/api/spec/spinlock.h | 2 ++ > include/odp/api/spec/spinlock_recursive.h | 2 ++ > include/odp/api/spec/std_clib.h | 2 ++ > include/odp/api/spec/std_types.h | 3 ++- > include/odp/api/spec/sync.h | 2 ++ > include/odp/api/spec/system_info.h | 3 ++- > include/odp/api/spec/thread.h | 2 ++ > include/odp/api/spec/thrmask.h | 2 ++ > include/odp/api/spec/ticketlock.h | 2 ++ > include/odp/api/spec/time.h | 3 ++- > include/odp/api/spec/timer.h | 2 ++ > include/odp/api/spec/traffic_mngr.h | 2 ++ > include/odp/api/spec/version.h | 2 ++ > platform/Makefile.inc | 1 + > platform/linux-generic/Makefile.am | 2 ++ > platform/linux-generic/include/odp/api/visibility_begin.h | 3 +++ > platform/linux-generic/include/odp/api/visibility_end.h | 3 +++ > platform/linux-generic/m4/configure.m4 | 12 > ++++++++++++ > 47 files changed, 105 insertions(+), 14 deletions(-) > create mode 100644 > platform/linux-generic/include/odp/api/visibility_begin.h > create mode 100644 platform/linux-generic/include/odp/api/visibility_end.h > > diff --git a/include/odp/api/spec/align.h b/include/odp/api/spec/align.h > index 677ff12..cbe7d67 100644 > --- a/include/odp/api/spec/align.h > +++ b/include/odp/api/spec/align.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_ALIGN_H_ > #define ODP_API_ALIGN_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -74,4 +75,5 @@ extern "C" { > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/atomic.h b/include/odp/api/spec/atomic.h > index a16d90b..7638b93 100644 > --- a/include/odp/api/spec/atomic.h > +++ b/include/odp/api/spec/atomic.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_ATOMIC_H_ > #define ODP_API_ATOMIC_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -628,4 +629,5 @@ int odp_atomic_lock_free_u64(odp_atomic_op_t > *atomic_op); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/barrier.h > b/include/odp/api/spec/barrier.h > index 823eae6..01e3dc7 100644 > --- a/include/odp/api/spec/barrier.h > +++ b/include/odp/api/spec/barrier.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_BARRIER_H_ > #define ODP_API_BARRIER_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -63,4 +64,5 @@ void odp_barrier_wait(odp_barrier_t *barr); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/buffer.h b/include/odp/api/spec/buffer.h > index 6631f47..ddadc69 100644 > --- a/include/odp/api/spec/buffer.h > +++ b/include/odp/api/spec/buffer.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_BUFFER_H_ > #define ODP_API_BUFFER_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @defgroup odp_buffer ODP BUFFER > * Operations on a buffer. > * @{ > @@ -167,4 +167,5 @@ uint64_t odp_buffer_to_u64(odp_buffer_t hdl); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/byteorder.h > b/include/odp/api/spec/byteorder.h > index a12a729..1018997 100644 > --- a/include/odp/api/spec/byteorder.h > +++ b/include/odp/api/spec/byteorder.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_BYTEORDER_H_ > #define ODP_API_BYTEORDER_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -177,4 +178,5 @@ odp_u64le_t odp_cpu_to_le_64(uint64_t cpu64); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/classification.h > b/include/odp/api/spec/classification.h > index 076b3de..8cf8091 100644 > --- a/include/odp/api/spec/classification.h > +++ b/include/odp/api/spec/classification.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_CLASSIFY_H_ > #define ODP_API_CLASSIFY_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @defgroup odp_classification ODP CLASSIFICATION > * Classification operations. > * @{ > @@ -396,4 +396,5 @@ uint64_t odp_pmr_to_u64(odp_pmr_t hdl); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/compiler.h > b/include/odp/api/spec/compiler.h > index 5a24bfb..d271e90 100644 > --- a/include/odp/api/spec/compiler.h > +++ b/include/odp/api/spec/compiler.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_COMPILER_H_ > #define ODP_API_COMPILER_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -48,4 +49,5 @@ extern "C" { > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/config.h b/include/odp/api/spec/config.h > index c9879d6..7a2d18b 100644 > --- a/include/odp/api/spec/config.h > +++ b/include/odp/api/spec/config.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_CONFIG_H_ > #define ODP_API_CONFIG_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -161,4 +162,5 @@ int odp_config_shm_blocks(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/cpu.h b/include/odp/api/spec/cpu.h > index f0e20c4..2789511 100644 > --- a/include/odp/api/spec/cpu.h > +++ b/include/odp/api/spec/cpu.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_CPU_H_ > #define ODP_CPU_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -176,4 +177,5 @@ void odp_cpu_pause(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/cpumask.h > b/include/odp/api/spec/cpumask.h > index 42098c2..129b3c1 100644 > --- a/include/odp/api/spec/cpumask.h > +++ b/include/odp/api/spec/cpumask.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_CPUMASK_H_ > #define ODP_API_CPUMASK_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -251,4 +252,5 @@ int odp_cpumask_all_available(odp_cpumask_t *mask); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/crypto.h b/include/odp/api/spec/crypto.h > index 7c6f9bc..05e3c35 100644 > --- a/include/odp/api/spec/crypto.h > +++ b/include/odp/api/spec/crypto.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_CRYPTO_H_ > #define ODP_API_CRYPTO_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -371,4 +372,5 @@ uint64_t odp_crypto_compl_to_u64(odp_crypto_compl_t > hdl); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/debug.h b/include/odp/api/spec/debug.h > index 247b0c0..a49dff3 100644 > --- a/include/odp/api/spec/debug.h > +++ b/include/odp/api/spec/debug.h > @@ -11,7 +11,7 @@ > > #ifndef ODP_API_DEBUG_H_ > #define ODP_API_DEBUG_H_ > - > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -32,4 +32,5 @@ extern "C" { > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/errno.h b/include/odp/api/spec/errno.h > index 33998b6..a1e7642 100644 > --- a/include/odp/api/spec/errno.h > +++ b/include/odp/api/spec/errno.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_ERRNO_H_ > #define ODP_ERRNO_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -82,4 +83,5 @@ const char *odp_errno_str(int errnum); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/event.h b/include/odp/api/spec/event.h > index 29547f3..082768f 100644 > --- a/include/odp/api/spec/event.h > +++ b/include/odp/api/spec/event.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_EVENT_H_ > #define ODP_API_EVENT_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @defgroup odp_event ODP EVENT > * Operations on an event. > * @{ > @@ -83,4 +83,5 @@ void odp_event_free(odp_event_t event); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/hash.h b/include/odp/api/spec/hash.h > index a6bc753..07a0156 100644 > --- a/include/odp/api/spec/hash.h > +++ b/include/odp/api/spec/hash.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_HASH_H_ > #define ODP_API_HASH_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -95,4 +96,5 @@ int odp_hash_crc_gen64(const void *data, uint32_t > data_len, > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/hints.h b/include/odp/api/spec/hints.h > index ea67fc4..158f802 100644 > --- a/include/odp/api/spec/hints.h > +++ b/include/odp/api/spec/hints.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_HINTS_H_ > #define ODP_API_HINTS_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -113,4 +114,5 @@ extern "C" { > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/init.h b/include/odp/api/spec/init.h > index 8560663..fec6774 100644 > --- a/include/odp/api/spec/init.h > +++ b/include/odp/api/spec/init.h > @@ -21,13 +21,12 @@ > > #ifndef ODP_API_INIT_H_ > #define ODP_API_INIT_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > - > #include <odp/api/std_types.h> > #include <odp/api/hints.h> > #include <odp/api/thread.h> > @@ -278,4 +277,5 @@ int odp_term_local(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h > index 094e846..9880d8a 100644 > --- a/include/odp/api/spec/packet.h > +++ b/include/odp/api/spec/packet.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_PACKET_H_ > #define ODP_API_PACKET_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -1181,4 +1182,5 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/packet_flags.h > b/include/odp/api/spec/packet_flags.h > index 35d44e1..c2998c1 100644 > --- a/include/odp/api/spec/packet_flags.h > +++ b/include/odp/api/spec/packet_flags.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_PACKET_FLAGS_H_ > #define ODP_API_PACKET_FLAGS_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -493,4 +494,5 @@ void odp_packet_has_ts_clr(odp_packet_t pkt); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/packet_io.h > b/include/odp/api/spec/packet_io.h > index 466cab6..d95edb1 100644 > --- a/include/odp/api/spec/packet_io.h > +++ b/include/odp/api/spec/packet_io.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_PACKET_IO_H_ > #define ODP_API_PACKET_IO_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -1038,4 +1039,5 @@ odp_time_t odp_pktin_ts_from_ns(odp_pktio_t pktio, > uint64_t ns); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/packet_io_stats.h > b/include/odp/api/spec/packet_io_stats.h > index 148ad8d..e0a6547 100644 > --- a/include/odp/api/spec/packet_io_stats.h > +++ b/include/odp/api/spec/packet_io_stats.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_PACKET_IO_STATS_H_ > #define ODP_API_PACKET_IO_STATS_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -138,4 +139,5 @@ int odp_pktio_stats_reset(odp_pktio_t pktio); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h > index 94a302e..87a194c 100644 > --- a/include/odp/api/spec/pool.h > +++ b/include/odp/api/spec/pool.h > @@ -13,13 +13,12 @@ > > #ifndef ODP_API_POOL_H_ > #define ODP_API_POOL_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > - > #include <odp/api/std_types.h> > > /** @defgroup odp_pool ODP POOL > @@ -210,4 +209,5 @@ void odp_pool_param_init(odp_pool_param_t *param); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/queue.h b/include/odp/api/spec/queue.h > index 51d94a2..7626ca7 100644 > --- a/include/odp/api/spec/queue.h > +++ b/include/odp/api/spec/queue.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_QUEUE_H_ > #define ODP_API_QUEUE_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -374,4 +375,5 @@ int odp_queue_info(odp_queue_t queue, odp_queue_info_t > *info); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/random.h b/include/odp/api/spec/random.h > index 435783a..db77630 100644 > --- a/include/odp/api/spec/random.h > +++ b/include/odp/api/spec/random.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_RANDOM_H_ > #define ODP_API_RANDOM_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -22,7 +23,6 @@ extern "C" { > * @{ > */ > > - > /** > * Generate random byte data > * > @@ -45,4 +45,5 @@ int32_t odp_random_data(uint8_t *buf, int32_t size, > odp_bool_t use_entropy); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/rwlock.h b/include/odp/api/spec/rwlock.h > index 9ca8872..631df48 100644 > --- a/include/odp/api/spec/rwlock.h > +++ b/include/odp/api/spec/rwlock.h > @@ -6,6 +6,7 @@ > > #ifndef ODP_API_RWLOCK_H_ > #define ODP_API_RWLOCK_H_ > +#include <odp/api/visibility_begin.h> > > /** > * @file > @@ -99,4 +100,5 @@ void odp_rwlock_write_unlock(odp_rwlock_t *rwlock); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif /* ODP_RWLOCK_H_ */ > diff --git a/include/odp/api/spec/rwlock_recursive.h > b/include/odp/api/spec/rwlock_recursive.h > index 965fcc0..9d50f20 100644 > --- a/include/odp/api/spec/rwlock_recursive.h > +++ b/include/odp/api/spec/rwlock_recursive.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_RWLOCK_RECURSIVE_H_ > #define ODP_API_RWLOCK_RECURSIVE_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -117,4 +118,5 @@ void > odp_rwlock_recursive_write_unlock(odp_rwlock_recursive_t *lock); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/schedule.h > b/include/odp/api/spec/schedule.h > index cd1325a..a720e03 100644 > --- a/include/odp/api/spec/schedule.h > +++ b/include/odp/api/spec/schedule.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_SCHEDULE_H_ > #define ODP_API_SCHEDULE_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > #include <odp/api/std_types.h> > #include <odp/api/event.h> > #include <odp/api/queue.h> > @@ -375,4 +375,5 @@ void odp_schedule_order_unlock(unsigned lock_index); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/schedule_types.h > b/include/odp/api/spec/schedule_types.h > index 34046af..b394d53 100644 > --- a/include/odp/api/spec/schedule_types.h > +++ b/include/odp/api/spec/schedule_types.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_SCHEDULE_TYPES_H_ > #define ODP_API_SCHEDULE_TYPES_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -156,4 +157,5 @@ typedef struct odp_schedule_param_t { > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/shared_memory.h > b/include/odp/api/spec/shared_memory.h > index 5d851ce..5d31f41 100644 > --- a/include/odp/api/spec/shared_memory.h > +++ b/include/odp/api/spec/shared_memory.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_SHARED_MEMORY_H_ > #define ODP_API_SHARED_MEMORY_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @defgroup odp_shared_memory ODP SHARED MEMORY > * Operations on shared memory. > * @{ > @@ -152,4 +152,5 @@ uint64_t odp_shm_to_u64(odp_shm_t hdl); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/spinlock.h > b/include/odp/api/spec/spinlock.h > index a73359d..8263171 100644 > --- a/include/odp/api/spec/spinlock.h > +++ b/include/odp/api/spec/spinlock.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_SPINLOCK_H_ > #define ODP_API_SPINLOCK_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -88,4 +89,5 @@ int odp_spinlock_is_locked(odp_spinlock_t *splock); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/spinlock_recursive.h > b/include/odp/api/spec/spinlock_recursive.h > index d98f2bb..07829fd 100644 > --- a/include/odp/api/spec/spinlock_recursive.h > +++ b/include/odp/api/spec/spinlock_recursive.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_SPINLOCK_RECURSIVE_H_ > #define ODP_API_SPINLOCK_RECURSIVE_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -82,4 +83,5 @@ int > odp_spinlock_recursive_is_locked(odp_spinlock_recursive_t *lock); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/std_clib.h > b/include/odp/api/spec/std_clib.h > index 791b72f..772732c 100644 > --- a/include/odp/api/spec/std_clib.h > +++ b/include/odp/api/spec/std_clib.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_STD_CLIB_H_ > #define ODP_API_STD_CLIB_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -79,4 +80,5 @@ int odp_memcmp(const void *ptr1, const void *ptr2, > size_t num); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/std_types.h > b/include/odp/api/spec/std_types.h > index 7558c64..47018d5 100644 > --- a/include/odp/api/spec/std_types.h > +++ b/include/odp/api/spec/std_types.h > @@ -14,12 +14,12 @@ > > #ifndef ODP_API_STD_TYPES_H_ > #define ODP_API_STD_TYPES_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @addtogroup odp_system ODP SYSTEM > * @{ > */ > @@ -39,4 +39,5 @@ extern "C" { > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/sync.h b/include/odp/api/spec/sync.h > index c6f790c..84b7cb9 100644 > --- a/include/odp/api/spec/sync.h > +++ b/include/odp/api/spec/sync.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_SYNC_H_ > #define ODP_API_SYNC_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -87,4 +88,5 @@ void odp_mb_full(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/system_info.h > b/include/odp/api/spec/system_info.h > index bde3a60..6957731 100644 > --- a/include/odp/api/spec/system_info.h > +++ b/include/odp/api/spec/system_info.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_SYSTEM_INFO_H_ > #define ODP_API_SYSTEM_INFO_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @defgroup odp_system ODP SYSTEM > * @{ > */ > @@ -52,4 +52,5 @@ int odp_sys_cache_line_size(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/thread.h b/include/odp/api/spec/thread.h > index 3720249..6e2a817 100644 > --- a/include/odp/api/spec/thread.h > +++ b/include/odp/api/spec/thread.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_THREAD_H_ > #define ODP_API_THREAD_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -109,4 +110,5 @@ odp_thread_type_t odp_thread_type(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/thrmask.h > b/include/odp/api/spec/thrmask.h > index a22da8c..73f3866 100644 > --- a/include/odp/api/spec/thrmask.h > +++ b/include/odp/api/spec/thrmask.h > @@ -12,6 +12,7 @@ > > #ifndef ODP_API_THRMASK_H_ > #define ODP_API_THRMASK_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -236,4 +237,5 @@ int odp_thrmask_control(odp_thrmask_t *mask); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/ticketlock.h > b/include/odp/api/spec/ticketlock.h > index 3f0e3f5..d485565 100644 > --- a/include/odp/api/spec/ticketlock.h > +++ b/include/odp/api/spec/ticketlock.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_TICKETLOCK_H_ > #define ODP_API_TICKETLOCK_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -87,4 +88,5 @@ int odp_ticketlock_is_locked(odp_ticketlock_t *tklock); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/time.h b/include/odp/api/spec/time.h > index 85692ec..a78fc2c 100644 > --- a/include/odp/api/spec/time.h > +++ b/include/odp/api/spec/time.h > @@ -13,12 +13,12 @@ > > #ifndef ODP_API_TIME_H_ > #define ODP_API_TIME_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > #endif > > - > /** @defgroup odp_time ODP TIME > * @{ > */ > @@ -178,4 +178,5 @@ uint64_t odp_time_to_u64(odp_time_t time); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/timer.h b/include/odp/api/spec/timer.h > index 435c004..3f8fdd4 100644 > --- a/include/odp/api/spec/timer.h > +++ b/include/odp/api/spec/timer.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_TIMER_H_ > #define ODP_API_TIMER_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -412,4 +413,5 @@ uint64_t odp_timeout_to_u64(odp_timeout_t hdl); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/traffic_mngr.h > b/include/odp/api/spec/traffic_mngr.h > index ce124a8..e4c15df 100644 > --- a/include/odp/api/spec/traffic_mngr.h > +++ b/include/odp/api/spec/traffic_mngr.h > @@ -6,6 +6,7 @@ > > #ifndef ODP_TRAFFIC_MNGR_H_ > #define ODP_TRAFFIC_MNGR_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -1371,4 +1372,5 @@ void odp_tm_stats_print(odp_tm_t odp_tm); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/include/odp/api/spec/version.h > b/include/odp/api/spec/version.h > index 642831c..004d9f6 100644 > --- a/include/odp/api/spec/version.h > +++ b/include/odp/api/spec/version.h > @@ -13,6 +13,7 @@ > > #ifndef ODP_API_VERSION_H_ > #define ODP_API_VERSION_H_ > +#include <odp/api/visibility_begin.h> > > #ifdef __cplusplus > extern "C" { > @@ -102,4 +103,5 @@ const char *odp_version_impl_str(void); > } > #endif > > +#include <odp/api/visibility_end.h> > #endif > diff --git a/platform/Makefile.inc b/platform/Makefile.inc > index 1cb7a71..5aa3fed 100644 > --- a/platform/Makefile.inc > +++ b/platform/Makefile.inc > @@ -15,6 +15,7 @@ AM_LDFLAGS += -version-number '$(ODP_LIBSO_VERSION)' > GIT_DESC = `$(top_srcdir)/scripts/get_impl_str.sh $(top_srcdir)` > AM_CFLAGS += "-DGIT_HASH=$(GIT_DESC)" > AM_CFLAGS += -DPLATFORM=${with_platform} > +AM_CFLAGS += $(VISIBILITY_CFLAGS) > > #The implementation will need to retain the deprecated implementation > AM_CFLAGS += -Wno-deprecated-declarations > diff --git a/platform/linux-generic/Makefile.am > b/platform/linux-generic/Makefile.am > index 5eb8cbc..c3cb51a 100644 > --- a/platform/linux-generic/Makefile.am > +++ b/platform/linux-generic/Makefile.am > @@ -57,6 +57,8 @@ odpapiinclude_HEADERS = \ > $(srcdir)/include/odp/api/timer.h \ > $(srcdir)/include/odp/api/traffic_mngr.h \ > $(srcdir)/include/odp/api/version.h \ > + $(srcdir)/include/odp/api/visibility_begin.h \ > + $(srcdir)/include/odp/api/visibility_end.h \ > $(srcdir)/arch/@ARCH@/odp/api/cpu_arch.h > > odpapiplatincludedir= $(includedir)/odp/api/plat > diff --git a/platform/linux-generic/include/odp/api/visibility_begin.h > b/platform/linux-generic/include/odp/api/visibility_begin.h > new file mode 100644 > index 0000000..38d169c > --- /dev/null > +++ b/platform/linux-generic/include/odp/api/visibility_begin.h > Need to have a copyright here in a new file > @@ -0,0 +1,3 @@ > +#if __GNUC__ >= 4 > +#pragma GCC visibility push(default) > +#endif > diff --git a/platform/linux-generic/include/odp/api/visibility_end.h > b/platform/linux-generic/include/odp/api/visibility_end.h > new file mode 100644 > index 0000000..ac9df04 > --- /dev/null > +++ b/platform/linux-generic/include/odp/api/visibility_end.h Need to have a copyright here in a new file > @@ -0,0 +1,3 @@ > +#if __GNUC__ >= 4 > +#pragma GCC visibility pop > +#endif > diff --git a/platform/linux-generic/m4/configure.m4 > b/platform/linux-generic/m4/configure.m4 > index f80c66c..75a3797 100644 > --- a/platform/linux-generic/m4/configure.m4 > +++ b/platform/linux-generic/m4/configure.m4 > @@ -1,3 +1,15 @@ > +# Enable -fvisibility=hidden if using a gcc that supports it > +OLD_CFLAGS="$CFLAGS" > +AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) > +VISIBILITY_CFLAGS="-fvisibility=hidden" > +CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" > +AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), > + [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]); > + > +AC_SUBST(VISIBILITY_CFLAGS) > +# Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. > +CFLAGS=$OLD_CFLAGS > + > AC_MSG_CHECKING(for GCC atomic builtins) > AC_LINK_IFELSE( > [AC_LANG_SOURCE( > -- > 2.5.0 > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp > -- Mike Holmes Technical Manager - Linaro Networking Group Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs "Work should be fun and collaborative, the rest follows"
Ok. v8 sent to correct that. On Tue, Apr 19, 2016 at 11:49 AM, Mike Holmes <mike.holmes@linaro.org> wrote: > > > On 19 April 2016 at 10:16, Bill Fischofer <bill.fischofer@linaro.org> > wrote: > >> From: Anders Roxell <anders.roxell@linaro.org> >> >> Internal functions should not be part of symbols that are visible >> outside the library. Using -fvisibility=hidden hides all internal >> functions from the public ABI. >> >> Suggested-by: Ricardo Salveti <ricardo.salveti@linaro.org> >> Signed-off-by: Anders Roxell <anders.roxell@linaro.org> >> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> >> --- >> Changes for v7: >> - Rename abi_begin/end to visibility_begin/end to clarify intent of patch >> >> Changes for v6: >> - Include abi_begin/end.h in platform/linux-generic/Makefile.am >> >> Changes for v5: >> - Switch to use of odp/api/abi_begin/end.h to isolate #pragmas >> >> include/odp/api/spec/align.h | 2 ++ >> include/odp/api/spec/atomic.h | 2 ++ >> include/odp/api/spec/barrier.h | 2 ++ >> include/odp/api/spec/buffer.h | 3 ++- >> include/odp/api/spec/byteorder.h | 2 ++ >> include/odp/api/spec/classification.h | 3 ++- >> include/odp/api/spec/compiler.h | 2 ++ >> include/odp/api/spec/config.h | 2 ++ >> include/odp/api/spec/cpu.h | 2 ++ >> include/odp/api/spec/cpumask.h | 2 ++ >> include/odp/api/spec/crypto.h | 2 ++ >> include/odp/api/spec/debug.h | 3 ++- >> include/odp/api/spec/errno.h | 2 ++ >> include/odp/api/spec/event.h | 3 ++- >> include/odp/api/spec/hash.h | 2 ++ >> include/odp/api/spec/hints.h | 2 ++ >> include/odp/api/spec/init.h | 4 ++-- >> include/odp/api/spec/packet.h | 2 ++ >> include/odp/api/spec/packet_flags.h | 2 ++ >> include/odp/api/spec/packet_io.h | 2 ++ >> include/odp/api/spec/packet_io_stats.h | 2 ++ >> include/odp/api/spec/pool.h | 4 ++-- >> include/odp/api/spec/queue.h | 2 ++ >> include/odp/api/spec/random.h | 3 ++- >> include/odp/api/spec/rwlock.h | 2 ++ >> include/odp/api/spec/rwlock_recursive.h | 2 ++ >> include/odp/api/spec/schedule.h | 3 ++- >> include/odp/api/spec/schedule_types.h | 2 ++ >> include/odp/api/spec/shared_memory.h | 3 ++- >> include/odp/api/spec/spinlock.h | 2 ++ >> include/odp/api/spec/spinlock_recursive.h | 2 ++ >> include/odp/api/spec/std_clib.h | 2 ++ >> include/odp/api/spec/std_types.h | 3 ++- >> include/odp/api/spec/sync.h | 2 ++ >> include/odp/api/spec/system_info.h | 3 ++- >> include/odp/api/spec/thread.h | 2 ++ >> include/odp/api/spec/thrmask.h | 2 ++ >> include/odp/api/spec/ticketlock.h | 2 ++ >> include/odp/api/spec/time.h | 3 ++- >> include/odp/api/spec/timer.h | 2 ++ >> include/odp/api/spec/traffic_mngr.h | 2 ++ >> include/odp/api/spec/version.h | 2 ++ >> platform/Makefile.inc | 1 + >> platform/linux-generic/Makefile.am | 2 ++ >> platform/linux-generic/include/odp/api/visibility_begin.h | 3 +++ >> platform/linux-generic/include/odp/api/visibility_end.h | 3 +++ >> platform/linux-generic/m4/configure.m4 | 12 >> ++++++++++++ >> 47 files changed, 105 insertions(+), 14 deletions(-) >> create mode 100644 >> platform/linux-generic/include/odp/api/visibility_begin.h >> create mode 100644 >> platform/linux-generic/include/odp/api/visibility_end.h >> >> diff --git a/include/odp/api/spec/align.h b/include/odp/api/spec/align.h >> index 677ff12..cbe7d67 100644 >> --- a/include/odp/api/spec/align.h >> +++ b/include/odp/api/spec/align.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_ALIGN_H_ >> #define ODP_API_ALIGN_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -74,4 +75,5 @@ extern "C" { >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/atomic.h b/include/odp/api/spec/atomic.h >> index a16d90b..7638b93 100644 >> --- a/include/odp/api/spec/atomic.h >> +++ b/include/odp/api/spec/atomic.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_ATOMIC_H_ >> #define ODP_API_ATOMIC_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -628,4 +629,5 @@ int odp_atomic_lock_free_u64(odp_atomic_op_t >> *atomic_op); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/barrier.h >> b/include/odp/api/spec/barrier.h >> index 823eae6..01e3dc7 100644 >> --- a/include/odp/api/spec/barrier.h >> +++ b/include/odp/api/spec/barrier.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_BARRIER_H_ >> #define ODP_API_BARRIER_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -63,4 +64,5 @@ void odp_barrier_wait(odp_barrier_t *barr); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/buffer.h b/include/odp/api/spec/buffer.h >> index 6631f47..ddadc69 100644 >> --- a/include/odp/api/spec/buffer.h >> +++ b/include/odp/api/spec/buffer.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_BUFFER_H_ >> #define ODP_API_BUFFER_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @defgroup odp_buffer ODP BUFFER >> * Operations on a buffer. >> * @{ >> @@ -167,4 +167,5 @@ uint64_t odp_buffer_to_u64(odp_buffer_t hdl); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/byteorder.h >> b/include/odp/api/spec/byteorder.h >> index a12a729..1018997 100644 >> --- a/include/odp/api/spec/byteorder.h >> +++ b/include/odp/api/spec/byteorder.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_BYTEORDER_H_ >> #define ODP_API_BYTEORDER_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -177,4 +178,5 @@ odp_u64le_t odp_cpu_to_le_64(uint64_t cpu64); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/classification.h >> b/include/odp/api/spec/classification.h >> index 076b3de..8cf8091 100644 >> --- a/include/odp/api/spec/classification.h >> +++ b/include/odp/api/spec/classification.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_CLASSIFY_H_ >> #define ODP_API_CLASSIFY_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @defgroup odp_classification ODP CLASSIFICATION >> * Classification operations. >> * @{ >> @@ -396,4 +396,5 @@ uint64_t odp_pmr_to_u64(odp_pmr_t hdl); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/compiler.h >> b/include/odp/api/spec/compiler.h >> index 5a24bfb..d271e90 100644 >> --- a/include/odp/api/spec/compiler.h >> +++ b/include/odp/api/spec/compiler.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_COMPILER_H_ >> #define ODP_API_COMPILER_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -48,4 +49,5 @@ extern "C" { >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/config.h b/include/odp/api/spec/config.h >> index c9879d6..7a2d18b 100644 >> --- a/include/odp/api/spec/config.h >> +++ b/include/odp/api/spec/config.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_CONFIG_H_ >> #define ODP_API_CONFIG_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -161,4 +162,5 @@ int odp_config_shm_blocks(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/cpu.h b/include/odp/api/spec/cpu.h >> index f0e20c4..2789511 100644 >> --- a/include/odp/api/spec/cpu.h >> +++ b/include/odp/api/spec/cpu.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_CPU_H_ >> #define ODP_CPU_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -176,4 +177,5 @@ void odp_cpu_pause(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/cpumask.h >> b/include/odp/api/spec/cpumask.h >> index 42098c2..129b3c1 100644 >> --- a/include/odp/api/spec/cpumask.h >> +++ b/include/odp/api/spec/cpumask.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_CPUMASK_H_ >> #define ODP_API_CPUMASK_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -251,4 +252,5 @@ int odp_cpumask_all_available(odp_cpumask_t *mask); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/crypto.h b/include/odp/api/spec/crypto.h >> index 7c6f9bc..05e3c35 100644 >> --- a/include/odp/api/spec/crypto.h >> +++ b/include/odp/api/spec/crypto.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_CRYPTO_H_ >> #define ODP_API_CRYPTO_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -371,4 +372,5 @@ uint64_t odp_crypto_compl_to_u64(odp_crypto_compl_t >> hdl); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/debug.h b/include/odp/api/spec/debug.h >> index 247b0c0..a49dff3 100644 >> --- a/include/odp/api/spec/debug.h >> +++ b/include/odp/api/spec/debug.h >> @@ -11,7 +11,7 @@ >> >> #ifndef ODP_API_DEBUG_H_ >> #define ODP_API_DEBUG_H_ >> - >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -32,4 +32,5 @@ extern "C" { >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/errno.h b/include/odp/api/spec/errno.h >> index 33998b6..a1e7642 100644 >> --- a/include/odp/api/spec/errno.h >> +++ b/include/odp/api/spec/errno.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_ERRNO_H_ >> #define ODP_ERRNO_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -82,4 +83,5 @@ const char *odp_errno_str(int errnum); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/event.h b/include/odp/api/spec/event.h >> index 29547f3..082768f 100644 >> --- a/include/odp/api/spec/event.h >> +++ b/include/odp/api/spec/event.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_EVENT_H_ >> #define ODP_API_EVENT_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @defgroup odp_event ODP EVENT >> * Operations on an event. >> * @{ >> @@ -83,4 +83,5 @@ void odp_event_free(odp_event_t event); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/hash.h b/include/odp/api/spec/hash.h >> index a6bc753..07a0156 100644 >> --- a/include/odp/api/spec/hash.h >> +++ b/include/odp/api/spec/hash.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_HASH_H_ >> #define ODP_API_HASH_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -95,4 +96,5 @@ int odp_hash_crc_gen64(const void *data, uint32_t >> data_len, >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/hints.h b/include/odp/api/spec/hints.h >> index ea67fc4..158f802 100644 >> --- a/include/odp/api/spec/hints.h >> +++ b/include/odp/api/spec/hints.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_HINTS_H_ >> #define ODP_API_HINTS_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -113,4 +114,5 @@ extern "C" { >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/init.h b/include/odp/api/spec/init.h >> index 8560663..fec6774 100644 >> --- a/include/odp/api/spec/init.h >> +++ b/include/odp/api/spec/init.h >> @@ -21,13 +21,12 @@ >> >> #ifndef ODP_API_INIT_H_ >> #define ODP_API_INIT_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> - >> #include <odp/api/std_types.h> >> #include <odp/api/hints.h> >> #include <odp/api/thread.h> >> @@ -278,4 +277,5 @@ int odp_term_local(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h >> index 094e846..9880d8a 100644 >> --- a/include/odp/api/spec/packet.h >> +++ b/include/odp/api/spec/packet.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_PACKET_H_ >> #define ODP_API_PACKET_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -1181,4 +1182,5 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t >> hdl); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/packet_flags.h >> b/include/odp/api/spec/packet_flags.h >> index 35d44e1..c2998c1 100644 >> --- a/include/odp/api/spec/packet_flags.h >> +++ b/include/odp/api/spec/packet_flags.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_PACKET_FLAGS_H_ >> #define ODP_API_PACKET_FLAGS_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -493,4 +494,5 @@ void odp_packet_has_ts_clr(odp_packet_t pkt); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/packet_io.h >> b/include/odp/api/spec/packet_io.h >> index 466cab6..d95edb1 100644 >> --- a/include/odp/api/spec/packet_io.h >> +++ b/include/odp/api/spec/packet_io.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_PACKET_IO_H_ >> #define ODP_API_PACKET_IO_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -1038,4 +1039,5 @@ odp_time_t odp_pktin_ts_from_ns(odp_pktio_t pktio, >> uint64_t ns); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/packet_io_stats.h >> b/include/odp/api/spec/packet_io_stats.h >> index 148ad8d..e0a6547 100644 >> --- a/include/odp/api/spec/packet_io_stats.h >> +++ b/include/odp/api/spec/packet_io_stats.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_PACKET_IO_STATS_H_ >> #define ODP_API_PACKET_IO_STATS_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -138,4 +139,5 @@ int odp_pktio_stats_reset(odp_pktio_t pktio); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h >> index 94a302e..87a194c 100644 >> --- a/include/odp/api/spec/pool.h >> +++ b/include/odp/api/spec/pool.h >> @@ -13,13 +13,12 @@ >> >> #ifndef ODP_API_POOL_H_ >> #define ODP_API_POOL_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> - >> #include <odp/api/std_types.h> >> >> /** @defgroup odp_pool ODP POOL >> @@ -210,4 +209,5 @@ void odp_pool_param_init(odp_pool_param_t *param); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/queue.h b/include/odp/api/spec/queue.h >> index 51d94a2..7626ca7 100644 >> --- a/include/odp/api/spec/queue.h >> +++ b/include/odp/api/spec/queue.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_QUEUE_H_ >> #define ODP_API_QUEUE_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -374,4 +375,5 @@ int odp_queue_info(odp_queue_t queue, >> odp_queue_info_t *info); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/random.h b/include/odp/api/spec/random.h >> index 435783a..db77630 100644 >> --- a/include/odp/api/spec/random.h >> +++ b/include/odp/api/spec/random.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_RANDOM_H_ >> #define ODP_API_RANDOM_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -22,7 +23,6 @@ extern "C" { >> * @{ >> */ >> >> - >> /** >> * Generate random byte data >> * >> @@ -45,4 +45,5 @@ int32_t odp_random_data(uint8_t *buf, int32_t size, >> odp_bool_t use_entropy); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/rwlock.h b/include/odp/api/spec/rwlock.h >> index 9ca8872..631df48 100644 >> --- a/include/odp/api/spec/rwlock.h >> +++ b/include/odp/api/spec/rwlock.h >> @@ -6,6 +6,7 @@ >> >> #ifndef ODP_API_RWLOCK_H_ >> #define ODP_API_RWLOCK_H_ >> +#include <odp/api/visibility_begin.h> >> >> /** >> * @file >> @@ -99,4 +100,5 @@ void odp_rwlock_write_unlock(odp_rwlock_t *rwlock); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif /* ODP_RWLOCK_H_ */ >> diff --git a/include/odp/api/spec/rwlock_recursive.h >> b/include/odp/api/spec/rwlock_recursive.h >> index 965fcc0..9d50f20 100644 >> --- a/include/odp/api/spec/rwlock_recursive.h >> +++ b/include/odp/api/spec/rwlock_recursive.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_RWLOCK_RECURSIVE_H_ >> #define ODP_API_RWLOCK_RECURSIVE_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -117,4 +118,5 @@ void >> odp_rwlock_recursive_write_unlock(odp_rwlock_recursive_t *lock); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/schedule.h >> b/include/odp/api/spec/schedule.h >> index cd1325a..a720e03 100644 >> --- a/include/odp/api/spec/schedule.h >> +++ b/include/odp/api/spec/schedule.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_SCHEDULE_H_ >> #define ODP_API_SCHEDULE_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> #include <odp/api/std_types.h> >> #include <odp/api/event.h> >> #include <odp/api/queue.h> >> @@ -375,4 +375,5 @@ void odp_schedule_order_unlock(unsigned lock_index); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/schedule_types.h >> b/include/odp/api/spec/schedule_types.h >> index 34046af..b394d53 100644 >> --- a/include/odp/api/spec/schedule_types.h >> +++ b/include/odp/api/spec/schedule_types.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_SCHEDULE_TYPES_H_ >> #define ODP_API_SCHEDULE_TYPES_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -156,4 +157,5 @@ typedef struct odp_schedule_param_t { >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/shared_memory.h >> b/include/odp/api/spec/shared_memory.h >> index 5d851ce..5d31f41 100644 >> --- a/include/odp/api/spec/shared_memory.h >> +++ b/include/odp/api/spec/shared_memory.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_SHARED_MEMORY_H_ >> #define ODP_API_SHARED_MEMORY_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @defgroup odp_shared_memory ODP SHARED MEMORY >> * Operations on shared memory. >> * @{ >> @@ -152,4 +152,5 @@ uint64_t odp_shm_to_u64(odp_shm_t hdl); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/spinlock.h >> b/include/odp/api/spec/spinlock.h >> index a73359d..8263171 100644 >> --- a/include/odp/api/spec/spinlock.h >> +++ b/include/odp/api/spec/spinlock.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_SPINLOCK_H_ >> #define ODP_API_SPINLOCK_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -88,4 +89,5 @@ int odp_spinlock_is_locked(odp_spinlock_t *splock); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/spinlock_recursive.h >> b/include/odp/api/spec/spinlock_recursive.h >> index d98f2bb..07829fd 100644 >> --- a/include/odp/api/spec/spinlock_recursive.h >> +++ b/include/odp/api/spec/spinlock_recursive.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_SPINLOCK_RECURSIVE_H_ >> #define ODP_API_SPINLOCK_RECURSIVE_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -82,4 +83,5 @@ int >> odp_spinlock_recursive_is_locked(odp_spinlock_recursive_t *lock); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/std_clib.h >> b/include/odp/api/spec/std_clib.h >> index 791b72f..772732c 100644 >> --- a/include/odp/api/spec/std_clib.h >> +++ b/include/odp/api/spec/std_clib.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_STD_CLIB_H_ >> #define ODP_API_STD_CLIB_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -79,4 +80,5 @@ int odp_memcmp(const void *ptr1, const void *ptr2, >> size_t num); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/std_types.h >> b/include/odp/api/spec/std_types.h >> index 7558c64..47018d5 100644 >> --- a/include/odp/api/spec/std_types.h >> +++ b/include/odp/api/spec/std_types.h >> @@ -14,12 +14,12 @@ >> >> #ifndef ODP_API_STD_TYPES_H_ >> #define ODP_API_STD_TYPES_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @addtogroup odp_system ODP SYSTEM >> * @{ >> */ >> @@ -39,4 +39,5 @@ extern "C" { >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/sync.h b/include/odp/api/spec/sync.h >> index c6f790c..84b7cb9 100644 >> --- a/include/odp/api/spec/sync.h >> +++ b/include/odp/api/spec/sync.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_SYNC_H_ >> #define ODP_API_SYNC_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -87,4 +88,5 @@ void odp_mb_full(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/system_info.h >> b/include/odp/api/spec/system_info.h >> index bde3a60..6957731 100644 >> --- a/include/odp/api/spec/system_info.h >> +++ b/include/odp/api/spec/system_info.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_SYSTEM_INFO_H_ >> #define ODP_API_SYSTEM_INFO_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @defgroup odp_system ODP SYSTEM >> * @{ >> */ >> @@ -52,4 +52,5 @@ int odp_sys_cache_line_size(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/thread.h b/include/odp/api/spec/thread.h >> index 3720249..6e2a817 100644 >> --- a/include/odp/api/spec/thread.h >> +++ b/include/odp/api/spec/thread.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_THREAD_H_ >> #define ODP_API_THREAD_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -109,4 +110,5 @@ odp_thread_type_t odp_thread_type(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/thrmask.h >> b/include/odp/api/spec/thrmask.h >> index a22da8c..73f3866 100644 >> --- a/include/odp/api/spec/thrmask.h >> +++ b/include/odp/api/spec/thrmask.h >> @@ -12,6 +12,7 @@ >> >> #ifndef ODP_API_THRMASK_H_ >> #define ODP_API_THRMASK_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -236,4 +237,5 @@ int odp_thrmask_control(odp_thrmask_t *mask); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/ticketlock.h >> b/include/odp/api/spec/ticketlock.h >> index 3f0e3f5..d485565 100644 >> --- a/include/odp/api/spec/ticketlock.h >> +++ b/include/odp/api/spec/ticketlock.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_TICKETLOCK_H_ >> #define ODP_API_TICKETLOCK_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -87,4 +88,5 @@ int odp_ticketlock_is_locked(odp_ticketlock_t *tklock); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/time.h b/include/odp/api/spec/time.h >> index 85692ec..a78fc2c 100644 >> --- a/include/odp/api/spec/time.h >> +++ b/include/odp/api/spec/time.h >> @@ -13,12 +13,12 @@ >> >> #ifndef ODP_API_TIME_H_ >> #define ODP_API_TIME_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> >> - >> /** @defgroup odp_time ODP TIME >> * @{ >> */ >> @@ -178,4 +178,5 @@ uint64_t odp_time_to_u64(odp_time_t time); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/timer.h b/include/odp/api/spec/timer.h >> index 435c004..3f8fdd4 100644 >> --- a/include/odp/api/spec/timer.h >> +++ b/include/odp/api/spec/timer.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_TIMER_H_ >> #define ODP_API_TIMER_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -412,4 +413,5 @@ uint64_t odp_timeout_to_u64(odp_timeout_t hdl); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/traffic_mngr.h >> b/include/odp/api/spec/traffic_mngr.h >> index ce124a8..e4c15df 100644 >> --- a/include/odp/api/spec/traffic_mngr.h >> +++ b/include/odp/api/spec/traffic_mngr.h >> @@ -6,6 +6,7 @@ >> >> #ifndef ODP_TRAFFIC_MNGR_H_ >> #define ODP_TRAFFIC_MNGR_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -1371,4 +1372,5 @@ void odp_tm_stats_print(odp_tm_t odp_tm); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/include/odp/api/spec/version.h >> b/include/odp/api/spec/version.h >> index 642831c..004d9f6 100644 >> --- a/include/odp/api/spec/version.h >> +++ b/include/odp/api/spec/version.h >> @@ -13,6 +13,7 @@ >> >> #ifndef ODP_API_VERSION_H_ >> #define ODP_API_VERSION_H_ >> +#include <odp/api/visibility_begin.h> >> >> #ifdef __cplusplus >> extern "C" { >> @@ -102,4 +103,5 @@ const char *odp_version_impl_str(void); >> } >> #endif >> >> +#include <odp/api/visibility_end.h> >> #endif >> diff --git a/platform/Makefile.inc b/platform/Makefile.inc >> index 1cb7a71..5aa3fed 100644 >> --- a/platform/Makefile.inc >> +++ b/platform/Makefile.inc >> @@ -15,6 +15,7 @@ AM_LDFLAGS += -version-number '$(ODP_LIBSO_VERSION)' >> GIT_DESC = `$(top_srcdir)/scripts/get_impl_str.sh $(top_srcdir)` >> AM_CFLAGS += "-DGIT_HASH=$(GIT_DESC)" >> AM_CFLAGS += -DPLATFORM=${with_platform} >> +AM_CFLAGS += $(VISIBILITY_CFLAGS) >> >> #The implementation will need to retain the deprecated implementation >> AM_CFLAGS += -Wno-deprecated-declarations >> diff --git a/platform/linux-generic/Makefile.am >> b/platform/linux-generic/Makefile.am >> index 5eb8cbc..c3cb51a 100644 >> --- a/platform/linux-generic/Makefile.am >> +++ b/platform/linux-generic/Makefile.am >> @@ -57,6 +57,8 @@ odpapiinclude_HEADERS = \ >> $(srcdir)/include/odp/api/timer.h \ >> $(srcdir)/include/odp/api/traffic_mngr.h \ >> $(srcdir)/include/odp/api/version.h \ >> + $(srcdir)/include/odp/api/visibility_begin.h \ >> + $(srcdir)/include/odp/api/visibility_end.h \ >> $(srcdir)/arch/@ARCH@/odp/api/cpu_arch.h >> >> odpapiplatincludedir= $(includedir)/odp/api/plat >> diff --git a/platform/linux-generic/include/odp/api/visibility_begin.h >> b/platform/linux-generic/include/odp/api/visibility_begin.h >> new file mode 100644 >> index 0000000..38d169c >> --- /dev/null >> +++ b/platform/linux-generic/include/odp/api/visibility_begin.h >> > > Need to have a copyright here in a new file > > >> @@ -0,0 +1,3 @@ >> +#if __GNUC__ >= 4 >> +#pragma GCC visibility push(default) >> +#endif >> diff --git a/platform/linux-generic/include/odp/api/visibility_end.h >> b/platform/linux-generic/include/odp/api/visibility_end.h >> new file mode 100644 >> index 0000000..ac9df04 >> --- /dev/null >> +++ b/platform/linux-generic/include/odp/api/visibility_end.h > > > Need to have a copyright here in a new file > > >> @@ -0,0 +1,3 @@ >> +#if __GNUC__ >= 4 >> +#pragma GCC visibility pop >> +#endif >> diff --git a/platform/linux-generic/m4/configure.m4 >> b/platform/linux-generic/m4/configure.m4 >> index f80c66c..75a3797 100644 >> --- a/platform/linux-generic/m4/configure.m4 >> +++ b/platform/linux-generic/m4/configure.m4 >> @@ -1,3 +1,15 @@ >> +# Enable -fvisibility=hidden if using a gcc that supports it >> +OLD_CFLAGS="$CFLAGS" >> +AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) >> +VISIBILITY_CFLAGS="-fvisibility=hidden" >> +CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" >> +AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), >> + [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]); >> + >> +AC_SUBST(VISIBILITY_CFLAGS) >> +# Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. >> +CFLAGS=$OLD_CFLAGS >> + >> AC_MSG_CHECKING(for GCC atomic builtins) >> AC_LINK_IFELSE( >> [AC_LANG_SOURCE( >> -- >> 2.5.0 >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> https://lists.linaro.org/mailman/listinfo/lng-odp >> > > > > -- > Mike Holmes > Technical Manager - Linaro Networking Group > Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs > "Work should be fun and collaborative, the rest follows" > > >
diff --git a/include/odp/api/spec/align.h b/include/odp/api/spec/align.h index 677ff12..cbe7d67 100644 --- a/include/odp/api/spec/align.h +++ b/include/odp/api/spec/align.h @@ -13,6 +13,7 @@ #ifndef ODP_API_ALIGN_H_ #define ODP_API_ALIGN_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -74,4 +75,5 @@ extern "C" { } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/atomic.h b/include/odp/api/spec/atomic.h index a16d90b..7638b93 100644 --- a/include/odp/api/spec/atomic.h +++ b/include/odp/api/spec/atomic.h @@ -13,6 +13,7 @@ #ifndef ODP_API_ATOMIC_H_ #define ODP_API_ATOMIC_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -628,4 +629,5 @@ int odp_atomic_lock_free_u64(odp_atomic_op_t *atomic_op); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/barrier.h b/include/odp/api/spec/barrier.h index 823eae6..01e3dc7 100644 --- a/include/odp/api/spec/barrier.h +++ b/include/odp/api/spec/barrier.h @@ -13,6 +13,7 @@ #ifndef ODP_API_BARRIER_H_ #define ODP_API_BARRIER_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -63,4 +64,5 @@ void odp_barrier_wait(odp_barrier_t *barr); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/buffer.h b/include/odp/api/spec/buffer.h index 6631f47..ddadc69 100644 --- a/include/odp/api/spec/buffer.h +++ b/include/odp/api/spec/buffer.h @@ -13,12 +13,12 @@ #ifndef ODP_API_BUFFER_H_ #define ODP_API_BUFFER_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @defgroup odp_buffer ODP BUFFER * Operations on a buffer. * @{ @@ -167,4 +167,5 @@ uint64_t odp_buffer_to_u64(odp_buffer_t hdl); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/byteorder.h b/include/odp/api/spec/byteorder.h index a12a729..1018997 100644 --- a/include/odp/api/spec/byteorder.h +++ b/include/odp/api/spec/byteorder.h @@ -13,6 +13,7 @@ #ifndef ODP_API_BYTEORDER_H_ #define ODP_API_BYTEORDER_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -177,4 +178,5 @@ odp_u64le_t odp_cpu_to_le_64(uint64_t cpu64); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/classification.h b/include/odp/api/spec/classification.h index 076b3de..8cf8091 100644 --- a/include/odp/api/spec/classification.h +++ b/include/odp/api/spec/classification.h @@ -13,12 +13,12 @@ #ifndef ODP_API_CLASSIFY_H_ #define ODP_API_CLASSIFY_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @defgroup odp_classification ODP CLASSIFICATION * Classification operations. * @{ @@ -396,4 +396,5 @@ uint64_t odp_pmr_to_u64(odp_pmr_t hdl); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/compiler.h b/include/odp/api/spec/compiler.h index 5a24bfb..d271e90 100644 --- a/include/odp/api/spec/compiler.h +++ b/include/odp/api/spec/compiler.h @@ -13,6 +13,7 @@ #ifndef ODP_API_COMPILER_H_ #define ODP_API_COMPILER_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -48,4 +49,5 @@ extern "C" { } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/config.h b/include/odp/api/spec/config.h index c9879d6..7a2d18b 100644 --- a/include/odp/api/spec/config.h +++ b/include/odp/api/spec/config.h @@ -13,6 +13,7 @@ #ifndef ODP_API_CONFIG_H_ #define ODP_API_CONFIG_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -161,4 +162,5 @@ int odp_config_shm_blocks(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/cpu.h b/include/odp/api/spec/cpu.h index f0e20c4..2789511 100644 --- a/include/odp/api/spec/cpu.h +++ b/include/odp/api/spec/cpu.h @@ -13,6 +13,7 @@ #ifndef ODP_CPU_H_ #define ODP_CPU_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -176,4 +177,5 @@ void odp_cpu_pause(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/cpumask.h b/include/odp/api/spec/cpumask.h index 42098c2..129b3c1 100644 --- a/include/odp/api/spec/cpumask.h +++ b/include/odp/api/spec/cpumask.h @@ -13,6 +13,7 @@ #ifndef ODP_API_CPUMASK_H_ #define ODP_API_CPUMASK_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -251,4 +252,5 @@ int odp_cpumask_all_available(odp_cpumask_t *mask); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/crypto.h b/include/odp/api/spec/crypto.h index 7c6f9bc..05e3c35 100644 --- a/include/odp/api/spec/crypto.h +++ b/include/odp/api/spec/crypto.h @@ -13,6 +13,7 @@ #ifndef ODP_API_CRYPTO_H_ #define ODP_API_CRYPTO_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -371,4 +372,5 @@ uint64_t odp_crypto_compl_to_u64(odp_crypto_compl_t hdl); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/debug.h b/include/odp/api/spec/debug.h index 247b0c0..a49dff3 100644 --- a/include/odp/api/spec/debug.h +++ b/include/odp/api/spec/debug.h @@ -11,7 +11,7 @@ #ifndef ODP_API_DEBUG_H_ #define ODP_API_DEBUG_H_ - +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -32,4 +32,5 @@ extern "C" { } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/errno.h b/include/odp/api/spec/errno.h index 33998b6..a1e7642 100644 --- a/include/odp/api/spec/errno.h +++ b/include/odp/api/spec/errno.h @@ -12,6 +12,7 @@ #ifndef ODP_ERRNO_H_ #define ODP_ERRNO_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -82,4 +83,5 @@ const char *odp_errno_str(int errnum); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/event.h b/include/odp/api/spec/event.h index 29547f3..082768f 100644 --- a/include/odp/api/spec/event.h +++ b/include/odp/api/spec/event.h @@ -13,12 +13,12 @@ #ifndef ODP_API_EVENT_H_ #define ODP_API_EVENT_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @defgroup odp_event ODP EVENT * Operations on an event. * @{ @@ -83,4 +83,5 @@ void odp_event_free(odp_event_t event); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/hash.h b/include/odp/api/spec/hash.h index a6bc753..07a0156 100644 --- a/include/odp/api/spec/hash.h +++ b/include/odp/api/spec/hash.h @@ -12,6 +12,7 @@ #ifndef ODP_API_HASH_H_ #define ODP_API_HASH_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -95,4 +96,5 @@ int odp_hash_crc_gen64(const void *data, uint32_t data_len, } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/hints.h b/include/odp/api/spec/hints.h index ea67fc4..158f802 100644 --- a/include/odp/api/spec/hints.h +++ b/include/odp/api/spec/hints.h @@ -13,6 +13,7 @@ #ifndef ODP_API_HINTS_H_ #define ODP_API_HINTS_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -113,4 +114,5 @@ extern "C" { } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/init.h b/include/odp/api/spec/init.h index 8560663..fec6774 100644 --- a/include/odp/api/spec/init.h +++ b/include/odp/api/spec/init.h @@ -21,13 +21,12 @@ #ifndef ODP_API_INIT_H_ #define ODP_API_INIT_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - - #include <odp/api/std_types.h> #include <odp/api/hints.h> #include <odp/api/thread.h> @@ -278,4 +277,5 @@ int odp_term_local(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h index 094e846..9880d8a 100644 --- a/include/odp/api/spec/packet.h +++ b/include/odp/api/spec/packet.h @@ -13,6 +13,7 @@ #ifndef ODP_API_PACKET_H_ #define ODP_API_PACKET_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -1181,4 +1182,5 @@ uint64_t odp_packet_seg_to_u64(odp_packet_seg_t hdl); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/packet_flags.h b/include/odp/api/spec/packet_flags.h index 35d44e1..c2998c1 100644 --- a/include/odp/api/spec/packet_flags.h +++ b/include/odp/api/spec/packet_flags.h @@ -13,6 +13,7 @@ #ifndef ODP_API_PACKET_FLAGS_H_ #define ODP_API_PACKET_FLAGS_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -493,4 +494,5 @@ void odp_packet_has_ts_clr(odp_packet_t pkt); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/packet_io.h b/include/odp/api/spec/packet_io.h index 466cab6..d95edb1 100644 --- a/include/odp/api/spec/packet_io.h +++ b/include/odp/api/spec/packet_io.h @@ -13,6 +13,7 @@ #ifndef ODP_API_PACKET_IO_H_ #define ODP_API_PACKET_IO_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -1038,4 +1039,5 @@ odp_time_t odp_pktin_ts_from_ns(odp_pktio_t pktio, uint64_t ns); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/packet_io_stats.h b/include/odp/api/spec/packet_io_stats.h index 148ad8d..e0a6547 100644 --- a/include/odp/api/spec/packet_io_stats.h +++ b/include/odp/api/spec/packet_io_stats.h @@ -12,6 +12,7 @@ #ifndef ODP_API_PACKET_IO_STATS_H_ #define ODP_API_PACKET_IO_STATS_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -138,4 +139,5 @@ int odp_pktio_stats_reset(odp_pktio_t pktio); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h index 94a302e..87a194c 100644 --- a/include/odp/api/spec/pool.h +++ b/include/odp/api/spec/pool.h @@ -13,13 +13,12 @@ #ifndef ODP_API_POOL_H_ #define ODP_API_POOL_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - - #include <odp/api/std_types.h> /** @defgroup odp_pool ODP POOL @@ -210,4 +209,5 @@ void odp_pool_param_init(odp_pool_param_t *param); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/queue.h b/include/odp/api/spec/queue.h index 51d94a2..7626ca7 100644 --- a/include/odp/api/spec/queue.h +++ b/include/odp/api/spec/queue.h @@ -13,6 +13,7 @@ #ifndef ODP_API_QUEUE_H_ #define ODP_API_QUEUE_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -374,4 +375,5 @@ int odp_queue_info(odp_queue_t queue, odp_queue_info_t *info); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/random.h b/include/odp/api/spec/random.h index 435783a..db77630 100644 --- a/include/odp/api/spec/random.h +++ b/include/odp/api/spec/random.h @@ -13,6 +13,7 @@ #ifndef ODP_API_RANDOM_H_ #define ODP_API_RANDOM_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -22,7 +23,6 @@ extern "C" { * @{ */ - /** * Generate random byte data * @@ -45,4 +45,5 @@ int32_t odp_random_data(uint8_t *buf, int32_t size, odp_bool_t use_entropy); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/rwlock.h b/include/odp/api/spec/rwlock.h index 9ca8872..631df48 100644 --- a/include/odp/api/spec/rwlock.h +++ b/include/odp/api/spec/rwlock.h @@ -6,6 +6,7 @@ #ifndef ODP_API_RWLOCK_H_ #define ODP_API_RWLOCK_H_ +#include <odp/api/visibility_begin.h> /** * @file @@ -99,4 +100,5 @@ void odp_rwlock_write_unlock(odp_rwlock_t *rwlock); } #endif +#include <odp/api/visibility_end.h> #endif /* ODP_RWLOCK_H_ */ diff --git a/include/odp/api/spec/rwlock_recursive.h b/include/odp/api/spec/rwlock_recursive.h index 965fcc0..9d50f20 100644 --- a/include/odp/api/spec/rwlock_recursive.h +++ b/include/odp/api/spec/rwlock_recursive.h @@ -12,6 +12,7 @@ #ifndef ODP_API_RWLOCK_RECURSIVE_H_ #define ODP_API_RWLOCK_RECURSIVE_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -117,4 +118,5 @@ void odp_rwlock_recursive_write_unlock(odp_rwlock_recursive_t *lock); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/schedule.h b/include/odp/api/spec/schedule.h index cd1325a..a720e03 100644 --- a/include/odp/api/spec/schedule.h +++ b/include/odp/api/spec/schedule.h @@ -13,12 +13,12 @@ #ifndef ODP_API_SCHEDULE_H_ #define ODP_API_SCHEDULE_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - #include <odp/api/std_types.h> #include <odp/api/event.h> #include <odp/api/queue.h> @@ -375,4 +375,5 @@ void odp_schedule_order_unlock(unsigned lock_index); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/schedule_types.h b/include/odp/api/spec/schedule_types.h index 34046af..b394d53 100644 --- a/include/odp/api/spec/schedule_types.h +++ b/include/odp/api/spec/schedule_types.h @@ -12,6 +12,7 @@ #ifndef ODP_API_SCHEDULE_TYPES_H_ #define ODP_API_SCHEDULE_TYPES_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -156,4 +157,5 @@ typedef struct odp_schedule_param_t { } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/shared_memory.h b/include/odp/api/spec/shared_memory.h index 5d851ce..5d31f41 100644 --- a/include/odp/api/spec/shared_memory.h +++ b/include/odp/api/spec/shared_memory.h @@ -13,12 +13,12 @@ #ifndef ODP_API_SHARED_MEMORY_H_ #define ODP_API_SHARED_MEMORY_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @defgroup odp_shared_memory ODP SHARED MEMORY * Operations on shared memory. * @{ @@ -152,4 +152,5 @@ uint64_t odp_shm_to_u64(odp_shm_t hdl); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/spinlock.h b/include/odp/api/spec/spinlock.h index a73359d..8263171 100644 --- a/include/odp/api/spec/spinlock.h +++ b/include/odp/api/spec/spinlock.h @@ -13,6 +13,7 @@ #ifndef ODP_API_SPINLOCK_H_ #define ODP_API_SPINLOCK_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -88,4 +89,5 @@ int odp_spinlock_is_locked(odp_spinlock_t *splock); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/spinlock_recursive.h b/include/odp/api/spec/spinlock_recursive.h index d98f2bb..07829fd 100644 --- a/include/odp/api/spec/spinlock_recursive.h +++ b/include/odp/api/spec/spinlock_recursive.h @@ -12,6 +12,7 @@ #ifndef ODP_API_SPINLOCK_RECURSIVE_H_ #define ODP_API_SPINLOCK_RECURSIVE_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -82,4 +83,5 @@ int odp_spinlock_recursive_is_locked(odp_spinlock_recursive_t *lock); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/std_clib.h b/include/odp/api/spec/std_clib.h index 791b72f..772732c 100644 --- a/include/odp/api/spec/std_clib.h +++ b/include/odp/api/spec/std_clib.h @@ -12,6 +12,7 @@ #ifndef ODP_API_STD_CLIB_H_ #define ODP_API_STD_CLIB_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -79,4 +80,5 @@ int odp_memcmp(const void *ptr1, const void *ptr2, size_t num); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/std_types.h b/include/odp/api/spec/std_types.h index 7558c64..47018d5 100644 --- a/include/odp/api/spec/std_types.h +++ b/include/odp/api/spec/std_types.h @@ -14,12 +14,12 @@ #ifndef ODP_API_STD_TYPES_H_ #define ODP_API_STD_TYPES_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @addtogroup odp_system ODP SYSTEM * @{ */ @@ -39,4 +39,5 @@ extern "C" { } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/sync.h b/include/odp/api/spec/sync.h index c6f790c..84b7cb9 100644 --- a/include/odp/api/spec/sync.h +++ b/include/odp/api/spec/sync.h @@ -13,6 +13,7 @@ #ifndef ODP_API_SYNC_H_ #define ODP_API_SYNC_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -87,4 +88,5 @@ void odp_mb_full(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/system_info.h b/include/odp/api/spec/system_info.h index bde3a60..6957731 100644 --- a/include/odp/api/spec/system_info.h +++ b/include/odp/api/spec/system_info.h @@ -13,12 +13,12 @@ #ifndef ODP_API_SYSTEM_INFO_H_ #define ODP_API_SYSTEM_INFO_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @defgroup odp_system ODP SYSTEM * @{ */ @@ -52,4 +52,5 @@ int odp_sys_cache_line_size(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/thread.h b/include/odp/api/spec/thread.h index 3720249..6e2a817 100644 --- a/include/odp/api/spec/thread.h +++ b/include/odp/api/spec/thread.h @@ -13,6 +13,7 @@ #ifndef ODP_API_THREAD_H_ #define ODP_API_THREAD_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -109,4 +110,5 @@ odp_thread_type_t odp_thread_type(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/thrmask.h b/include/odp/api/spec/thrmask.h index a22da8c..73f3866 100644 --- a/include/odp/api/spec/thrmask.h +++ b/include/odp/api/spec/thrmask.h @@ -12,6 +12,7 @@ #ifndef ODP_API_THRMASK_H_ #define ODP_API_THRMASK_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -236,4 +237,5 @@ int odp_thrmask_control(odp_thrmask_t *mask); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/ticketlock.h b/include/odp/api/spec/ticketlock.h index 3f0e3f5..d485565 100644 --- a/include/odp/api/spec/ticketlock.h +++ b/include/odp/api/spec/ticketlock.h @@ -13,6 +13,7 @@ #ifndef ODP_API_TICKETLOCK_H_ #define ODP_API_TICKETLOCK_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -87,4 +88,5 @@ int odp_ticketlock_is_locked(odp_ticketlock_t *tklock); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/time.h b/include/odp/api/spec/time.h index 85692ec..a78fc2c 100644 --- a/include/odp/api/spec/time.h +++ b/include/odp/api/spec/time.h @@ -13,12 +13,12 @@ #ifndef ODP_API_TIME_H_ #define ODP_API_TIME_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { #endif - /** @defgroup odp_time ODP TIME * @{ */ @@ -178,4 +178,5 @@ uint64_t odp_time_to_u64(odp_time_t time); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/timer.h b/include/odp/api/spec/timer.h index 435c004..3f8fdd4 100644 --- a/include/odp/api/spec/timer.h +++ b/include/odp/api/spec/timer.h @@ -13,6 +13,7 @@ #ifndef ODP_API_TIMER_H_ #define ODP_API_TIMER_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -412,4 +413,5 @@ uint64_t odp_timeout_to_u64(odp_timeout_t hdl); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/traffic_mngr.h b/include/odp/api/spec/traffic_mngr.h index ce124a8..e4c15df 100644 --- a/include/odp/api/spec/traffic_mngr.h +++ b/include/odp/api/spec/traffic_mngr.h @@ -6,6 +6,7 @@ #ifndef ODP_TRAFFIC_MNGR_H_ #define ODP_TRAFFIC_MNGR_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -1371,4 +1372,5 @@ void odp_tm_stats_print(odp_tm_t odp_tm); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/include/odp/api/spec/version.h b/include/odp/api/spec/version.h index 642831c..004d9f6 100644 --- a/include/odp/api/spec/version.h +++ b/include/odp/api/spec/version.h @@ -13,6 +13,7 @@ #ifndef ODP_API_VERSION_H_ #define ODP_API_VERSION_H_ +#include <odp/api/visibility_begin.h> #ifdef __cplusplus extern "C" { @@ -102,4 +103,5 @@ const char *odp_version_impl_str(void); } #endif +#include <odp/api/visibility_end.h> #endif diff --git a/platform/Makefile.inc b/platform/Makefile.inc index 1cb7a71..5aa3fed 100644 --- a/platform/Makefile.inc +++ b/platform/Makefile.inc @@ -15,6 +15,7 @@ AM_LDFLAGS += -version-number '$(ODP_LIBSO_VERSION)' GIT_DESC = `$(top_srcdir)/scripts/get_impl_str.sh $(top_srcdir)` AM_CFLAGS += "-DGIT_HASH=$(GIT_DESC)" AM_CFLAGS += -DPLATFORM=${with_platform} +AM_CFLAGS += $(VISIBILITY_CFLAGS) #The implementation will need to retain the deprecated implementation AM_CFLAGS += -Wno-deprecated-declarations diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 5eb8cbc..c3cb51a 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -57,6 +57,8 @@ odpapiinclude_HEADERS = \ $(srcdir)/include/odp/api/timer.h \ $(srcdir)/include/odp/api/traffic_mngr.h \ $(srcdir)/include/odp/api/version.h \ + $(srcdir)/include/odp/api/visibility_begin.h \ + $(srcdir)/include/odp/api/visibility_end.h \ $(srcdir)/arch/@ARCH@/odp/api/cpu_arch.h odpapiplatincludedir= $(includedir)/odp/api/plat diff --git a/platform/linux-generic/include/odp/api/visibility_begin.h b/platform/linux-generic/include/odp/api/visibility_begin.h new file mode 100644 index 0000000..38d169c --- /dev/null +++ b/platform/linux-generic/include/odp/api/visibility_begin.h @@ -0,0 +1,3 @@ +#if __GNUC__ >= 4 +#pragma GCC visibility push(default) +#endif diff --git a/platform/linux-generic/include/odp/api/visibility_end.h b/platform/linux-generic/include/odp/api/visibility_end.h new file mode 100644 index 0000000..ac9df04 --- /dev/null +++ b/platform/linux-generic/include/odp/api/visibility_end.h @@ -0,0 +1,3 @@ +#if __GNUC__ >= 4 +#pragma GCC visibility pop +#endif diff --git a/platform/linux-generic/m4/configure.m4 b/platform/linux-generic/m4/configure.m4 index f80c66c..75a3797 100644 --- a/platform/linux-generic/m4/configure.m4 +++ b/platform/linux-generic/m4/configure.m4 @@ -1,3 +1,15 @@ +# Enable -fvisibility=hidden if using a gcc that supports it +OLD_CFLAGS="$CFLAGS" +AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) +VISIBILITY_CFLAGS="-fvisibility=hidden" +CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" +AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), + [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]); + +AC_SUBST(VISIBILITY_CFLAGS) +# Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. +CFLAGS=$OLD_CFLAGS + AC_MSG_CHECKING(for GCC atomic builtins) AC_LINK_IFELSE( [AC_LANG_SOURCE(