scripts/build/debug/300-gdb.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 13 10:32:38 2008 +0000 (2008-07-13)
changeset 645 8e58024f8e37
parent 626 32af757a45f6
child 669 ca740b4c4262
permissions -rw-r--r--
Ioannis E. VENETIS <venetis@mail.capsl.udel.edu> pointed out that GMP and MPFR were not used by gcc.
Turned out that none could use GMP and MPFR as the config option changed its name, but the change was not propagated to all users.

/trunk/scripts/build/binutils.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 2 1 1 0 +-
/trunk/scripts/build/cc_gcc.sh | 6 3 3 0 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
yann@479
     1
# Build script for the gdb debug facility
yann@479
     2
yann@479
     3
is_enabled="${CT_GDB}"
yann@479
     4
yann@479
     5
do_print_filename() {
yann@479
     6
    [ "${CT_GDB}" = "y" ] || return 0
yann@523
     7
    echo "gdb$(do_debug_gdb_suffix)"
yann@598
     8
    if [ "${CT_GDB_NATIVE}" = "y" ]; then
yann@598
     9
        echo "ncurses-${CT_NCURSES_VERSION}"
yann@598
    10
    fi
yann@479
    11
}
yann@479
    12
yann@479
    13
do_debug_gdb_suffix() {
yann@479
    14
    case "${CT_GDB_VERSION}" in
yann@479
    15
        snapshot)   ;;
yann@479
    16
        *)          echo "-${CT_GDB_VERSION}";;
yann@479
    17
    esac
yann@479
    18
}
yann@479
    19
yann@479
    20
do_debug_gdb_get() {
yann@573
    21
    CT_GetFile "gdb$(do_debug_gdb_suffix)"              \
yann@573
    22
               {ftp,http}://ftp.gnu.org/pub/gnu/gdb     \
yann@486
    23
               ftp://sources.redhat.com/pub/gdb/{{,old-}releases,snapshots/current}
yann@573
    24
    if [ "${CT_GDB_NATIVE}" = "y" ]; then
yann@573
    25
        CT_GetFile "ncurses-${CT_NCURSES_VERSION}"          \
yann@573
    26
                   {ftp,http}://ftp.gnu.org/pub/gnu/ncurses \
yann@573
    27
                   ftp://invisible-island.net/ncurses
yann@573
    28
    fi
yann@479
    29
}
yann@479
    30
yann@479
    31
do_debug_gdb_extract() {
yann@523
    32
    CT_ExtractAndPatch "gdb$(do_debug_gdb_suffix)"
yann@598
    33
    if [ "${CT_GDB_NATIVE}" = "y" ]; then
yann@598
    34
        CT_ExtractAndPatch "ncurses-${CT_NCURSES_VERSION}"
yann@598
    35
    fi
yann@479
    36
}
yann@479
    37
yann@479
    38
do_debug_gdb_build() {
yann@523
    39
    gdb_src_dir="${CT_SRC_DIR}/gdb$(do_debug_gdb_suffix)"
yann@479
    40
yann@479
    41
    extra_config=
yann@479
    42
    # Version 6.3 and below behave badly with gdbmi
yann@479
    43
    case "${CT_GDB_VERSION}" in
yann@479
    44
        6.2*|6.3)   extra_config="${extra_config} --disable-gdbmi";;
yann@479
    45
    esac
yann@479
    46
yann@479
    47
    if [ "${CT_GDB_CROSS}" = "y" ]; then
yann@479
    48
        CT_DoStep INFO "Installing cross-gdb"
yann@479
    49
        CT_DoLog EXTRA "Configuring cross-gdb"
yann@479
    50
yann@479
    51
        mkdir -p "${CT_BUILD_DIR}/build-gdb-cross"
yann@479
    52
        cd "${CT_BUILD_DIR}/build-gdb-cross"
yann@479
    53
yann@602
    54
        cross_extra_config="${extra_config}"
yann@645
    55
        if [ "${CT_GMP_MPFR}" = "y" ]; then
yann@602
    56
            cross_extra_config="${cross_extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
yann@583
    57
        fi
yann@583
    58
        case "${CT_THREADS}" in
yann@602
    59
            none)   cross_extra_config="${cross_extra_config} --disable-threads";;
yann@602
    60
            *)      cross_extra_config="${cross_extra_config} --enable-threads";;
yann@583
    61
        esac
yann@583
    62
yann@479
    63
        CC_for_gdb=
yann@479
    64
        LD_for_gdb=
yann@583
    65
        if [ "${CT_GDB_CROSS_STATIC}" = "y" ]; then
yann@479
    66
            CC_for_gdb="gcc -static"
yann@479
    67
            LD_for_gdb="ld -static"
yann@479
    68
        fi
yann@479
    69
yann@602
    70
        CT_DoLog DEBUG "Extra config passed: '${cross_extra_config# }'"
yann@602
    71
yann@479
    72
        CC="${CC_for_gdb}"                              \
yann@583
    73
        LD="${LD_for_gdb}"                              \
yann@479
    74
        "${gdb_src_dir}/configure"                      \
yann@479
    75
            --build=${CT_BUILD}                         \
yann@479
    76
            --host=${CT_HOST}                           \
yann@479
    77
            --target=${CT_TARGET}                       \
yann@479
    78
            --prefix="${CT_PREFIX_DIR}"                 \
yann@479
    79
            --with-build-sysroot="${CT_SYSROOT_DIR}"    \
yann@602
    80
            ${cross_extra_config}                       2>&1 |CT_DoLog ALL
yann@479
    81
yann@479
    82
        CT_DoLog EXTRA "Building cross-gdb"
yann@479
    83
        make ${PARALLELMFLAGS}                          2>&1 |CT_DoLog ALL
yann@479
    84
yann@479
    85
        CT_DoLog EXTRA "Installing cross-gdb"
yann@479
    86
        make install                                    2>&1 |CT_DoLog ALL
yann@479
    87
yann@479
    88
        CT_EndStep
yann@479
    89
    fi
yann@479
    90
yann@479
    91
    if [ "${CT_GDB_NATIVE}" = "y" ]; then
yann@573
    92
        CT_DoStep INFO "Installing native gdb"
yann@573
    93
yann@573
    94
        CT_DoStep INFO "Installing ncurses library"
yann@573
    95
        CT_DoLog EXTRA "Configuring ncurses"
yann@573
    96
        mkdir -p "${CT_BUILD_DIR}/build-ncurses"
yann@573
    97
        cd "${CT_BUILD_DIR}/build-ncurses"
yann@573
    98
yann@573
    99
        ncurses_opts=
yann@573
   100
        [ "${CT_CC_LANG_CXX}" = "y" ] || ncurses_opts="${ncurses_opts} --without-cxx --without-cxx-binding"
yann@609
   101
        [ "${CT_CC_LANG_ADA}" = "y" ] || ncurses_opts="${ncurses_opts} --without-ada"
yann@573
   102
yann@573
   103
        "${CT_SRC_DIR}/ncurses-${CT_NCURSES_VERSION}/configure" \
yann@573
   104
            --build=${CT_BUILD}                                 \
yann@573
   105
            --host=${CT_TARGET}                                 \
yann@573
   106
            --with-build-cc=${CT_CC}                            \
yann@573
   107
            --with-build-cpp=${CT_CC}                           \
yann@573
   108
            --with-build-cflags="${CT_CFLAGS_FOR_HOST}"         \
yann@573
   109
            --prefix=/usr                                       \
yann@573
   110
            --with-shared                                       \
yann@573
   111
            --without-sysmouse                                  \
yann@573
   112
            --without-progs                                     \
yann@573
   113
            --enable-termcap                                    \
yann@573
   114
            ${ncurses_opts}                                     2>&1 |CT_DoLog ALL
yann@573
   115
yann@573
   116
        CT_DoLog EXTRA "Building ncurses"
yann@573
   117
        make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
yann@573
   118
yann@573
   119
        CT_DoLog EXTRA "Installing ncurses"
yann@577
   120
        mkdir -p -v "${CT_SYSROOT_DIR}/usr/bin"     2>&1 |CT_DoLog ALL
yann@573
   121
        make DESTDIR="${CT_SYSROOT_DIR}" install    2>&1 |CT_DoLog ALL
yann@573
   122
yann@573
   123
        CT_EndStep
yann@573
   124
yann@479
   125
        CT_DoLog EXTRA "Configuring native gdb"
yann@479
   126
yann@479
   127
        mkdir -p "${CT_BUILD_DIR}/build-gdb-native"
yann@479
   128
        cd "${CT_BUILD_DIR}/build-gdb-native"
yann@479
   129
yann@602
   130
        native_extra_config="${extra_config}"
yann@583
   131
        case "${CT_THREADS}" in
yann@602
   132
            none)   native_extra_config="${native_extra_config} --disable-threads";;
yann@602
   133
            *)      native_extra_config="${native_extra_config} --enable-threads";;
yann@583
   134
        esac
yann@622
   135
        if [ "${CT_GDB_NATIVE_USE_GMP_MPFR}" = "y" ]; then
yann@602
   136
            native_extra_config="${native_extra_config} --with-gmp=${CT_SYSROOT_DIR}/usr --with-mpfr=${CT_SYSROOT_DIR}/usr"
yann@602
   137
        fi
yann@583
   138
yann@583
   139
        if [ "${CT_GDB_NATIVE_STATIC}" = "y" ]; then
yann@583
   140
            CC_for_gdb="${CT_TARGET}-gcc -static"
yann@583
   141
            LD_for_gdb="${CT_TARGET}-ld -static"
yann@626
   142
        else
yann@626
   143
            CC_for_gdb="${CT_TARGET}-gcc"
yann@626
   144
            LD_for_gdb="${CT_TARGET}-ld"
yann@583
   145
        fi
yann@583
   146
yann@583
   147
        export ac_cv_func_strncmp_works=yes
yann@583
   148
yann@602
   149
        CT_DoLog DEBUG "Extra config passed: '${native_extra_config# }'"
yann@602
   150
yann@583
   151
        CC="${CC_for_gdb}"                              \
yann@583
   152
        LD="${LD_for_gdb}"                              \
yann@479
   153
        "${gdb_src_dir}/configure"                      \
yann@479
   154
            --build=${CT_BUILD}                         \
yann@479
   155
            --host=${CT_TARGET}                         \
yann@479
   156
            --target=${CT_TARGET}                       \
yann@479
   157
            --prefix=/usr                               \
yann@479
   158
            --with-build-sysroot="${CT_SYSROOT_DIR}"    \
yann@479
   159
            --without-uiout                             \
yann@479
   160
            --disable-tui                               \
yann@479
   161
            --disable-gdbtk                             \
yann@479
   162
            --without-x                                 \
yann@479
   163
            --disable-sim                               \
yann@583
   164
            --disable-werror                            \
yann@479
   165
            --without-included-gettext                  \
yann@583
   166
            --without-develop                           \
yann@602
   167
            ${native_extra_config}                      2>&1 |CT_DoLog ALL
yann@479
   168
yann@479
   169
        CT_DoLog EXTRA "Building native gdb"
yann@479
   170
        make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} 2>&1 |CT_DoLog ALL
yann@479
   171
yann@479
   172
        CT_DoLog EXTRA "Installing native gdb"
yann@479
   173
        make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install  2>&1 |CT_DoLog ALL
yann@479
   174
yann@583
   175
        # Building a native gdb also builds a gdbserver
yann@583
   176
        find "${CT_DEBUG_INSTALL_DIR}" -type f -name gdbserver -exec rm -fv {} + 2>&1 |CT_DoLog ALL
yann@583
   177
yann@583
   178
        unset ac_cv_func_strncmp_works
yann@583
   179
yann@583
   180
        CT_EndStep
yann@583
   181
    fi
yann@583
   182
yann@583
   183
    if [ "${CT_GDB_GDBSERVER}" = "y" ]; then
yann@583
   184
        CT_DoStep INFO "Installing gdbserver"
yann@583
   185
        CT_DoLog EXTRA "Configuring gdbserver"
yann@583
   186
yann@583
   187
        mkdir -p "${CT_BUILD_DIR}/build-gdb-gdbserver"
yann@583
   188
        cd "${CT_BUILD_DIR}/build-gdb-gdbserver"
yann@583
   189
yann@583
   190
        # Workaround for bad versions, where the configure
yann@583
   191
        # script for gdbserver is not executable...
yann@583
   192
        # Bah, GNU folks strike again... :-(
yann@583
   193
        chmod +x "${gdb_src_dir}/gdb/gdbserver/configure"
yann@583
   194
yann@583
   195
        gdbserver_LDFLAGS=
yann@583
   196
        if [ "${CT_GDB_GDBSERVER_STATIC}" = "y" ]; then
yann@583
   197
            gdbserver_LDFLAGS=-static
yann@583
   198
        fi
yann@583
   199
yann@602
   200
        gdbserver_extra_config="${extra_config}"
yann@602
   201
yann@583
   202
        LDFLAGS="${gdbserver_LDFLAGS}"                  \
yann@583
   203
        "${gdb_src_dir}/gdb/gdbserver/configure"        \
yann@583
   204
            --build=${CT_BUILD}                         \
yann@583
   205
            --host=${CT_TARGET}                         \
yann@583
   206
            --target=${CT_TARGET}                       \
yann@583
   207
            --prefix=/usr                               \
yann@583
   208
            --sysconfdir=/etc                           \
yann@583
   209
            --localstatedir=/var                        \
yann@583
   210
            --includedir="${CT_HEADERS_DIR}"            \
yann@583
   211
            --with-build-sysroot="${CT_SYSROOT_DIR}"    \
yann@583
   212
            --program-prefix=                           \
yann@583
   213
            --without-uiout                             \
yann@583
   214
            --disable-tui                               \
yann@583
   215
            --disable-gdbtk                             \
yann@583
   216
            --without-x                                 \
yann@583
   217
            --without-included-gettext                  \
yann@583
   218
            --without-develop                           \
yann@602
   219
            ${gdbserver_extra_config}                   2>&1 |CT_DoLog ALL
yann@583
   220
yann@583
   221
        CT_DoLog EXTRA "Building gdbserver"
yann@583
   222
        make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} 2>&1 |CT_DoLog ALL
yann@583
   223
yann@583
   224
        CT_DoLog EXTRA "Installing gdbserver"
yann@583
   225
        make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install  2>&1 |CT_DoLog ALL
yann@583
   226
yann@479
   227
        CT_EndStep
yann@479
   228
    fi
yann@479
   229
}