Changeset 5809145


Ignore:
Timestamp:
05/29/14 11:54:58 (6 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
a63a913, c7021d9
Parents:
d3b6b91 (diff), 2a7047c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'gccvisibility' into develop

Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • configure.in

    r12e6a39 r10f924c  
    105105LIBWANDIO_LIBS=""
    106106
    107 # Set our C compiler flags based on the gcc version
    108 if test "$GCC" = "yes"; then
     107CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wextra -DLT_BUILDING_DLL=1"
     108CXXFLAGS="$CXXFLAGS -Wall -DLT_BUILDING_DLL=1"
     109
     110# Check for -fvisibility
     111gl_VISIBILITY
     112
    109113       
    110         gcc_version=`$CC -dumpversion`
    111 
    112         # This is probably not the most reliable way to test whether our
    113         # compiler supports visibility, but it's better than nothing
    114         #
    115         # According to the gcc wiki - http://gcc.gnu.org/wiki/Visibility -
    116         # visibility is supported in gcc 4.0 or later, so we just need to
    117         # check the major version number
    118 
    119         major=$(echo $gcc_version | cut -d'.' -f1)
    120 
    121         #major=${gcc_version%\.*\.*}
    122 
    123         if test "$major" -lt 4; then
    124                 vis=no
    125         else
    126                 vis=yes
    127         fi
    128        
    129         CFLAGS="$CFLAGS -Wall -Wmissing-prototypes"
    130         CXXFLAGS="$CXXFLAGS -Wall"
    131         LIBCFLAGS="$CFLAGS"
    132         LIBCFLAGS="$LIBCFLAGS -DLT_BUILDING_DLL=1"
    133         LIBCXXFLAGS="$CXXFLAGS"
    134         LIBCXXFLAGS="$CXXFLAGS -DLT_BUILDING_DLL=1"
    135        
    136         if test "$vis" = "yes"; then
    137                 LIBCFLAGS="$LIBCFLAGS -Wextra -fvisibility=hidden"
    138                 LIBCXXFLAGS="$CXXFLAGS -Wextra -fvisibility=hidden"
    139         fi
    140 fi
    141 
    142114# Check for libtool
    143115AC_PROG_LIBTOOL
  • lib/Makefile.am

    r2138553 r10f924c  
    22include_HEADERS = libtrace.h dagformat.h lt_inttypes.h daglegacy.h rt_protocol.h erftypes.h 
    33
    4 AM_CFLAGS=@LIBCFLAGS@
    5 AM_CXXFLAGS=@LIBCXXFLAGS@
     4AM_CFLAGS=@LIBCFLAGS@ @CFLAG_VISIBILITY@
     5AM_CXXFLAGS=@LIBCXXFLAGS@ @CFLAG_VISIBILITY@
    66
    77extra_DIST = format_template.c
  • lib/libtrace.h.in

    r74ecbc7 r10f924c  
    8080#if defined(LITTLE_ENDIAN) && !defined(__LITTLE_ENDIAN)
    8181#define __LITTLE_ENDIAN LITTLE_ENDIAN
    82 #endif
    83 
    84 #ifdef _MSC_VER
    85     /* define the following from MSVC's internal types */
    86     typedef             __int8  int8_t;
    87     typedef             __int16 int16_t;
    88     typedef             __int32 int32_t;
    89     typedef             __int64 int64_t;
    90     typedef unsigned    __int8  uint8_t;
    91     typedef unsigned    __int16 uint16_t;
    92     typedef unsigned    __int32 uint32_t;
    93     typedef unsigned    __int64 uint64_t;
    94     #ifdef LT_BUILDING_DLL
    95         #define DLLEXPORT __declspec(dllexport)
    96     #else
    97         #define DLLEXPORT __declspec(dllimport)
    98     #endif
    99     #define DLLLOCAL
    100     /* Windows pads bitfields out to to the size of their parent type
    101      * however gcc warns that this doesn't meet with the iso C specification
    102      * so produces warnings for this behaviour.  sigh.
    103      */
    104     #define LT_BITFIELD8        uint8_t
    105     #define LT_BITFIELD16       uint16_t
    106     #define LT_BITFIELD32       uint32_t
    107     #define LT_BITFIELD64       uint64_t
    108 #else
    109     #ifdef HAVE_STDINT_H
    110         #   include <stdint.h>
    111     #endif
    112     #if __GNUC__ >= 4
    113         #ifdef LT_BUILDING_DLL
    114                 #define DLLEXPORT __attribute__ ((visibility("default")))
    115                 #define DLLLOCAL __attribute__ ((visibility("hidden")))
    116         #else
    117                 #define DLLEXPORT
    118                 #define DLLLOCAL
    119         #endif
    120     #else
    121         #define DLLEXPORT
    122         #define DLLLOCAL
    123     #endif
    124     /* GCC warns if the bitfield type is not "unsigned int", however windows
    125      * generates incorrect code for this (see above), so we define these
    126      * macros.  How Hideous.  So much for C's portability.
    127      */
    128     #define LT_BITFIELD8        unsigned int
    129     #define LT_BITFIELD16       unsigned int
    130     #define LT_BITFIELD32       unsigned int
    131     #define LT_BITFIELD64       unsigned int
    13282#endif
    13383
     
    170120#endif
    171121
     122#ifdef _MSC_VER
     123    /* define the following from MSVC's internal types */
     124    typedef             __int8  int8_t;
     125    typedef             __int16 int16_t;
     126    typedef             __int32 int32_t;
     127    typedef             __int64 int64_t;
     128    typedef unsigned    __int8  uint8_t;
     129    typedef unsigned    __int16 uint16_t;
     130    typedef unsigned    __int32 uint32_t;
     131    typedef unsigned    __int64 uint64_t;
     132   
     133    /* Windows pads bitfields out to to the size of their parent type
     134     * however gcc warns that this doesn't meet with the iso C specification
     135     * so produces warnings for this behaviour.  sigh.
     136     */
     137    #define LT_BITFIELD8        uint8_t
     138    #define LT_BITFIELD16       uint16_t
     139    #define LT_BITFIELD32       uint32_t
     140    #define LT_BITFIELD64       uint64_t
     141#else
     142    #ifdef HAVE_STDINT_H
     143        #   include <stdint.h>
     144    #endif
     145    /* GCC warns if the bitfield type is not "unsigned int", however windows
     146     * generates incorrect code for this (see above), so we define these
     147     * macros.  How Hideous.  So much for C's portability.
     148     */
     149    #define LT_BITFIELD8        unsigned int
     150    #define LT_BITFIELD16       unsigned int
     151    #define LT_BITFIELD32       unsigned int
     152    #define LT_BITFIELD64       unsigned int
     153#endif
     154
    172155/* Function does not depend on anything but its
    173156 * parameters, used to hint gcc's optimisations
     157 *
     158 * TODO: Find a way to check for these that is not gcc-specific
    174159 */
    175160#if __GNUC__ >= 3
     
    186171#  define PRINTF(formatpos,argpos)
    187172#endif
     173
     174#ifdef _MSC_VER
     175    #ifdef LT_BUILDING_DLL
     176        #define DLLEXPORT __declspec(dllexport)
     177    #else
     178        #define DLLEXPORT __declspec(dllimport)
     179    #endif
     180    #define DLLLOCAL
     181#else
     182    #ifndef DLLEXPORT
     183        #if HAVE_VISIBILITY && LT_BUILDING_DLL
     184            #define DLLEXPORT __attribute__ ((visibility("default")))
     185            #define DLLLOCAL __attribute__ ((visibility("hidden")))
     186        #else
     187            #define DLLEXPORT
     188            #define DLLLOCAL
     189        #endif
     190    #endif
     191#endif
     192
    188193       
    189194/** Opaque structure holding information about an output trace */
  • lib/libtrace_int.h

    r8b49230 r10f924c  
    147147#include "bpf-jit/bpf-jit.h"
    148148#endif
     149
    149150
    150151//#define RP_BUFSIZE 65536U
  • lib/protocols_ospf.c

    r8753bb8 r10f924c  
    3232 */
    3333
     34#include "libtrace_int.h"
    3435#include "libtrace.h"
    3536#include "protocols.h"
  • lib/protocols_transport.c

    rc909fad r10f924c  
    3333
    3434
     35#include "libtrace_int.h"
    3536#include "libtrace.h"
    3637#include "protocols.h"
  • libwandio/Makefile.am

    r60f3c4c r10f924c  
    33include_HEADERS=wandio.h
    44
    5 AM_CFLAGS=@LIBCFLAGS@
    6 AM_CXXFLAGS=@LIBCXXFLAGS@
     5AM_CFLAGS=@LIBCFLAGS@ @CFLAG_VISIBILITY@
     6AM_CXXFLAGS=@LIBCXXFLAGS@ @CFLAG_VISIBILITY@
    77
    88if HAVE_ZLIB
     
    2525
    2626libwandio_la_SOURCES=wandio.c ior-peek.c ior-stdio.c ior-thread.c \
    27                 iow-stdio.c iow-thread.c wandio.h \
     27                iow-stdio.c iow-thread.c wandio.h wandio_internal.h \
    2828                $(LIBTRACEIO_ZLIB) $(LIBTRACEIO_BZLIB) $(LIBTRACEIO_LZO)
    2929
  • libwandio/ior-stdio.c

    r60f3c4c r10f924c  
    3434
    3535#define _GNU_SOURCE 1
     36#include "wandio_internal.h"
    3637#include "wandio.h"
    3738#include <sys/types.h>
  • libwandio/ior-thread.c

    r954577b9 r10f924c  
    3434
    3535#include "config.h"
     36#include "wandio_internal.h"
    3637#include "wandio.h"
    3738#include <sys/types.h>
  • libwandio/iow-lzo.c

    r4a2529b r2a7047c  
    4141
    4242#include <lzo/lzo1x.h>
     43#include "wandio_internal.h"
    4344#include "wandio.h"
    4445#include "config.h"
  • libwandio/iow-stdio.c

    r60f3c4c r10f924c  
    3434
    3535#define _GNU_SOURCE 1
     36#include "wandio_internal.h"
    3637#include "wandio.h"
    3738#include <sys/types.h>
  • libwandio/iow-thread.c

    r954577b9 r10f924c  
    3434#include "config.h"
    3535#include "wandio.h"
     36#include "wandio_internal.h"
    3637#include <sys/types.h>
    3738#include <sys/stat.h>
  • libwandio/wandio.c

    r808eeef r10f924c  
    3434
    3535#include "config.h"
     36#include "wandio_internal.h"
    3637#include "wandio.h"
    3738#include <stdlib.h>
  • libwandio/wandio.h

    r0acfd1e r10f924c  
    3434#ifndef IO_H
    3535#define IO_H 1 /**< Guard Define */
    36 #include "config.h"
    3736#include <sys/types.h>
    3837#include <stdio.h>
     
    4039#include <stdbool.h>
    4140
    42 #if __GNUC__ >= 4
    43         #ifdef LT_BUILDING_DLL
    44                 #define DLLEXPORT __attribute__ ((visibility("default")))
    45                 #define DLLLOCAL __attribute__ ((visibility("hidden")))
    46         #else
    47                 #define DLLEXPORT
    48                 #define DLLLOCAL
    49         #endif
    50 #else
    51         #define DLLEXPORT
    52         #define DLLLOCAL
     41
     42#ifndef DLLEXPORT
     43        #if HAVE_VISIBILITY && LT_BUILDING_DLL
     44                #define DLLEXPORT __attribute__ ((visibility("default")))
     45                #define DLLLOCAL __attribute__ ((visibility("hidden")))
     46        #else
     47                #define DLLEXPORT
     48                #define DLLLOCAL
     49        #endif
    5350#endif
    5451
     52// TODO: Use a proper check for these attribute rather than gcc version check
    5553#if __GNUC__ >= 3
    5654#  define DEPRECATED __attribute__((deprecated))
     
    330328/** @} */
    331329
    332 /** @name libtraceio options
    333  * @{ */
    334 extern int force_directio_read;
    335 extern int force_directio_write;
    336 extern uint64_t write_waits;
    337 extern uint64_t read_waits;
    338 extern unsigned int use_threads;
    339 extern unsigned int max_buffers;
    340 /* @} */
    341 
    342330#endif
Note: See TracChangeset for help on using the changeset viewer.