| … | |
… | |
| 135 | # cross linker |
135 | # cross linker |
| 136 | plugins="${plugins} gnu" |
136 | plugins="${plugins} gnu" |
| 137 | # allow debugging any plugin |
137 | # allow debugging any plugin |
| 138 | [[ -z ${LDPLUGINS} ]] || plugins=${LDPLUGINS} |
138 | [[ -z ${LDPLUGINS} ]] || plugins=${LDPLUGINS} |
| 139 | else |
139 | else |
|
|
140 | local ldversion=$("${EROOT}${BINPATH}/${x}" --version 2>/dev/null) |
|
|
141 | if [[ $? -eq 0 && ${ldversion} == *GNU* ]]; then |
|
|
142 | plugins="${plugins} gnu" |
|
|
143 | else |
| 140 | case ${TARGET} in |
144 | case ${TARGET} in |
| 141 | *-darwin*) plugins="${plugins} darwin" ;; |
145 | *-darwin*) plugins="${plugins} darwin" ;; |
| 142 | *-aix*) plugins="${plugins} aix" ;; |
146 | *-aix*) plugins="${plugins} aix" ;; |
| 143 | *-hpux*) plugins="${plugins} hpux" ;; |
147 | *-hpux*) plugins="${plugins} hpux" ;; |
| 144 | *-linux* | *-solaris*) plugins="${plugins} gnu" ;; |
148 | *-linux* | *-solaris*) plugins="${plugins} gnu" ;; |
| 145 | *) eerror "unknown platform ${CTARGET}" |
149 | *) eerror "unknown platform ${CTARGET}" |
| 146 | exit 1 |
150 | exit 1 |
| 147 | ;; |
151 | ;; |
| 148 | esac |
152 | esac |
|
|
153 | fi |
| 149 | fi |
154 | fi |
| 150 | for plugin in ${plugins}; do |
155 | for plugin in ${plugins}; do |
| 151 | echo "#include <${plugin}plugin.h>" |
156 | echo "#include <${plugin}plugin.h>" |
| 152 | done |
157 | done |
| 153 | echo "LdPluginFct const* LDPLUGINS() {" |
158 | echo "LdPluginFct const* LDPLUGINS() {" |
| … | |
… | |
| 173 | if [[ -z ${cc} ]]; then |
178 | if [[ -z ${cc} ]]; then |
| 174 | echo -n "Cannot find compiler for ${HOST} (try setting CC)" |
179 | echo -n "Cannot find compiler for ${HOST} (try setting CC)" |
| 175 | return 1 |
180 | return 1 |
| 176 | fi |
181 | fi |
| 177 | rm -f "${EROOT}${BINPATH_LINKS}/${x}.new" > /dev/null || return 1 |
182 | rm -f "${EROOT}${BINPATH_LINKS}/${x}.new" > /dev/null || return 1 |
|
|
183 | if [[ -z ${ROOT%/} && ${TARGET} == ${HOST} ]]; then |
|
|
184 | # allow current ld-wrapper find the new ld, |
|
|
185 | # since the old one may be unmerged already. |
|
|
186 | export PATH="${EPREFIX}/${BINPATH}:${PATH}" |
|
|
187 | fi |
| 178 | "${cc}" -o "${EROOT}${BINPATH_LINKS}/${x}.new" "${ctargetfile}" \ |
188 | "${cc}" -o "${EROOT}${BINPATH_LINKS}/${x}.new" "${ctargetfile}" \ |
| 179 | "-I${wrapper}" "${wrapper}/libbinutils-config.a" ${CFLAGS} || return 1 |
189 | "-I${wrapper}" "${wrapper}/libbinutils-config.a" ${CFLAGS} || return 1 |
| 180 | [[ ${DEBUG} == yes ]] || rm -f "${ctargetfile}" || return 1 |
190 | [[ ${DEBUG} == yes ]] || rm -f "${ctargetfile}" || return 1 |
| 181 | mv -f "${EROOT}${BINPATH_LINKS}/${x}"{.new,} || return 1 |
191 | mv -f "${EROOT}${BINPATH_LINKS}/${x}"{.new,} || return 1 |
| 182 | touch -r "${EROOT}/${BINPATH}/${x}" "${EROOT}${BINPATH_LINKS}/${x}" || return 1 |
192 | touch -r "${EROOT}/${BINPATH}/${x}" "${EROOT}${BINPATH_LINKS}/${x}" || return 1 |