| Last change
 on this file since 908 was             846, checked in by Dmitry A. Kuminov, 15 years ago | 
        
          | 
trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.
 | 
        
          | 
              
Property                 svn:executable
 set to                 * | 
        
          | File size:
            1.6 KB | 
      
      
| Line |  | 
|---|
| 1 | #!/bin/sh | 
|---|
| 2 |  | 
|---|
| 3 | FVISIBILITY_SUPPORT=no | 
|---|
| 4 | COMPILER=$1 | 
|---|
| 5 | VERBOSE=$2 | 
|---|
| 6 |  | 
|---|
| 7 | CMDLINE= | 
|---|
| 8 |  | 
|---|
| 9 |  | 
|---|
| 10 | RunCompileTest() { | 
|---|
| 11 | cat >>fvisibility.c << EOF | 
|---|
| 12 | #if defined(__GNUC__) | 
|---|
| 13 | #   if (__GNUC__ < 4) | 
|---|
| 14 | #      error "GCC3 with backported visibility patch is known to miscompile Qt" | 
|---|
| 15 | #   endif | 
|---|
| 16 | __attribute((visibility("default"))) void blah(); | 
|---|
| 17 | #elif defined(__SUNPRO_CC) | 
|---|
| 18 | #   if (__SUNPRO_CC < 0x0550) | 
|---|
| 19 | #      error "SunStudio 8 or later is required for ELF visibility" | 
|---|
| 20 | #   endif | 
|---|
| 21 | __global void blah(); | 
|---|
| 22 | #else | 
|---|
| 23 | #   error "GCC4+ or SunStudio 8+ are required to support ELF visibility" | 
|---|
| 24 | #endif | 
|---|
| 25 | EOF | 
|---|
| 26 |  | 
|---|
| 27 | if [ "$VERBOSE" = "yes" ] ; then | 
|---|
| 28 | "$COMPILER" -c $CMDLINE fvisibility.c && FVISIBILITY_SUPPORT=yes | 
|---|
| 29 | else | 
|---|
| 30 | "$COMPILER" -c $CMDLINE fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes | 
|---|
| 31 | fi | 
|---|
| 32 | rm -f fvisibility.c fvisibility.o | 
|---|
| 33 | } | 
|---|
| 34 |  | 
|---|
| 35 |  | 
|---|
| 36 | case "$COMPILER" in | 
|---|
| 37 | *g++*|*c++*) | 
|---|
| 38 | CMDLINE="-fvisibility=hidden" | 
|---|
| 39 | RunCompileTest | 
|---|
| 40 | ;; | 
|---|
| 41 |  | 
|---|
| 42 | aCC*) | 
|---|
| 43 | ;; | 
|---|
| 44 |  | 
|---|
| 45 | icpc) | 
|---|
| 46 | ICPC_VERSION=`icpc -dumpversion` | 
|---|
| 47 | case "$ICPC_VERSION" in | 
|---|
| 48 | 8.*|9.*|10.0) | 
|---|
| 49 | # 8.x, 9.x, and 10.0 don't support symbol visibility | 
|---|
| 50 | ;; | 
|---|
| 51 | *) | 
|---|
| 52 | # the compile test works for the intel compiler because it mimics gcc's behavior | 
|---|
| 53 | CMDLINE="-fvisibility=hidden" | 
|---|
| 54 | RunCompileTest | 
|---|
| 55 | ;; | 
|---|
| 56 | esac | 
|---|
| 57 | ;; | 
|---|
| 58 |  | 
|---|
| 59 | CC) | 
|---|
| 60 | # This should be SunStudio.  If not, it'll get caught. | 
|---|
| 61 | CMDLINE="-xldscope=hidden" | 
|---|
| 62 | RunCompileTest | 
|---|
| 63 | ;; | 
|---|
| 64 | esac | 
|---|
| 65 |  | 
|---|
| 66 | # done | 
|---|
| 67 | if [ "$FVISIBILITY_SUPPORT" != "yes" ]; then | 
|---|
| 68 | [ "$VERBOSE" = "yes" ] && echo "Symbol visibility control disabled." | 
|---|
| 69 | exit 0 | 
|---|
| 70 | else | 
|---|
| 71 | [ "$VERBOSE" = "yes" ] && echo "Symbol visibility control enabled." | 
|---|
| 72 | exit 1 | 
|---|
| 73 | fi | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.