gcc 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. # Copyright (C) Igor Sysoev
  2. # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
  3. # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
  4. # 4.0.0, 4.0.1, 4.1.0
  5. NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \
  6. | sed -e 's/^.* version \(.*\)/\1/'`
  7. echo " + gcc version: $NGX_GCC_VER"
  8. have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define
  9. # Solaris 7's /usr/ccs/bin/as does not support "-pipe"
  10. CC_TEST_FLAGS="-pipe"
  11. ngx_feature="gcc -pipe switch"
  12. ngx_feature_name=
  13. ngx_feature_run=no
  14. ngx_feature_incs=
  15. ngx_feature_path=
  16. ngx_feature_libs=
  17. ngx_feature_test=
  18. . auto/feature
  19. CC_TEST_FLAGS=
  20. if [ $ngx_found = yes ]; then
  21. PIPE="-pipe"
  22. fi
  23. case "$NGX_MACHINE" in
  24. sun4u | sun4v | sparc | sparc64 )
  25. # "-mcpu=v9" enables the "casa" assembler instruction
  26. CFLAGS="$CFLAGS -mcpu=v9"
  27. ;;
  28. esac
  29. # optimizations
  30. #NGX_GCC_OPT="-O2"
  31. #NGX_GCC_OPT="-Os"
  32. NGX_GCC_OPT="-O"
  33. CFLAGS="$CFLAGS $NGX_GCC_OPT"
  34. #CFLAGS="$CFLAGS -fomit-frame-pointer"
  35. case $CPU in
  36. pentium)
  37. # optimize for Pentium and Athlon
  38. CPU_OPT="-march=pentium"
  39. NGX_CPU_CACHE_LINE=32
  40. ;;
  41. pentiumpro | pentium3)
  42. # optimize for Pentium Pro, Pentium II and Pentium III
  43. CPU_OPT="-march=pentiumpro"
  44. NGX_CPU_CACHE_LINE=32
  45. ;;
  46. pentium4)
  47. # optimize for Pentium 4, gcc 3.x
  48. CPU_OPT="-march=pentium4"
  49. NGX_CPU_CACHE_LINE=128
  50. ;;
  51. athlon)
  52. # optimize for Athlon, gcc 3.x
  53. CPU_OPT="-march=athlon"
  54. NGX_CPU_CACHE_LINE=64
  55. ;;
  56. opteron)
  57. # optimize for Opteron, gcc 3.x
  58. CPU_OPT="-march=opteron"
  59. NGX_CPU_CACHE_LINE=64
  60. ;;
  61. sparc32)
  62. # build 32-bit UltraSparc binary
  63. CPU_OPT="-m32"
  64. CORE_LINK="$CORE_LINK -m32"
  65. CC_AUX_FLAGS="$CC_AUX_FLAGS -m32"
  66. NGX_CPU_CACHE_LINE=64
  67. ;;
  68. sparc64)
  69. # build 64-bit UltraSparc binary
  70. CPU_OPT="-m64"
  71. CORE_LINK="$CORE_LINK -m64"
  72. CC_AUX_FLAGS="$CC_AUX_FLAGS -m64"
  73. NGX_CPU_CACHE_LINE=64
  74. ;;
  75. ppc64)
  76. # build 64-bit PowerPC binary
  77. CPU_OPT="-m64"
  78. CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32"
  79. CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32"
  80. CORE_LINK="$CORE_LINK -m64"
  81. CC_AUX_FLAGS="$CC_AUX_FLAGS -m64"
  82. NGX_CPU_CACHE_LINE=128
  83. ;;
  84. esac
  85. case "$NGX_GCC_VER" in
  86. 2.7*)
  87. # batch build
  88. CPU_OPT=
  89. ;;
  90. esac
  91. CFLAGS="$CFLAGS $PIPE $CPU_OPT"
  92. if [ ".$PCRE_OPT" = "." ]; then
  93. PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
  94. else
  95. PCRE_OPT="$PCRE_OPT $PIPE"
  96. fi
  97. if [ ".$MD5_OPT" = "." ]; then
  98. MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
  99. else
  100. MD5_OPT="$MD5_OPT $PIPE"
  101. fi
  102. if [ ".$ZLIB_OPT" = "." ]; then
  103. ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
  104. else
  105. ZLIB_OPT="$ZLIB_OPT $PIPE"
  106. fi
  107. # warnings
  108. # -W requires at least -O
  109. CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W"
  110. CFLAGS="$CFLAGS -Wall -Wpointer-arith"
  111. #CFLAGS="$CFLAGS -Wconversion"
  112. #CFLAGS="$CFLAGS -Winline"
  113. case "$NGX_GCC_VER" in
  114. 3.* | 4.* )
  115. # we have a lot of the unused function arguments
  116. CFLAGS="$CFLAGS -Wno-unused-parameter"
  117. CFLAGS="$CFLAGS -Wno-unused-function"
  118. CFLAGS="$CFLAGS -Wunused-variable"
  119. CFLAGS="$CFLAGS -Wunused-value"
  120. #CFLAGS="$CFLAGS -Wunreachable-code"
  121. ;;
  122. *)
  123. # we have a lot of the unused function arguments
  124. CFLAGS="$CFLAGS -Wno-unused"
  125. ;;
  126. esac
  127. # stop on warning
  128. CFLAGS="$CFLAGS -Werror"
  129. # debug
  130. CFLAGS="$CFLAGS -g"
  131. # DragonFly's gcc3 generates DWARF
  132. #CFLAGS="$CFLAGS -g -gstabs"
  133. if [ ".$CPP" = "." ]; then
  134. CPP="$CC -E"
  135. fi