Rev 15 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 15 | Rev 19 | ||
|---|---|---|---|
| Line 71... | Line 71... | ||
| 71 | # we're not in WSL. We can expect reasonably good file access speeds to the QNX SDP that's bundled with this repository, so just use it. |
71 | # we're not in WSL. We can expect reasonably good file access speeds to the QNX SDP that's bundled with this repository, so just use it. |
| 72 | QNXSDK_CANONICAL_PATH="$(realpath "${CURRENT_DIR}/${QNXSDK_PATH}")" |
72 | QNXSDK_CANONICAL_PATH="$(realpath "${CURRENT_DIR}/${QNXSDK_PATH}")" |
| 73 | fi |
73 | fi |
| 74 | 74 | ||
| 75 | # verify that the symlinks are deployed in the SDK -- just test one of them in each relevant directory ($QNX_HOST for the tools, $QNX_TARGET for the sysroot) |
75 | # verify that the symlinks are deployed in the SDK -- just test one of them in each relevant directory ($QNX_HOST for the tools, $QNX_TARGET for the sysroot) |
| 76 | if [ ! -e "${QNXSDK_CANONICAL_PATH}/${QNXSDK_HOSTPATH}/usr/bin/gcc" ] || [ ! -e "${QNXSDK_CANONICAL_PATH}/${QNXSDK_TARGETPATH}/usr/include/readline.h" ]; then |
76 | if [ ! -e "${QNXSDK_CANONICAL_PATH}/${QNXSDK_HOSTPATH}/usr/bin/ntox86_64-gcc" ] || [ ! -e "${QNXSDK_CANONICAL_PATH}/${QNXSDK_TARGETPATH}/usr/include/readline.h" ]; then |
| 77 | print_error_and_die \ |
77 | print_error_and_die \ |
| 78 | "Error: the toolchain platform-specific symbolic links have not been deployed in this QNX SDK. Please run" \ |
78 | "Error: the toolchain platform-specific symbolic links have not been deployed in this QNX SDK. Please run" \ |
| 79 | "(on a POSIX machine:)" \ |
79 | "(on a POSIX machine:)" \ |
| 80 | " cd ${QNXSDK_CANONICAL_PATH}" \ |
80 | " cd ${QNXSDK_CANONICAL_PATH}" \ |
| 81 | " find . -name symlinks.lst -exec ./symlinks.sh {} create \\; && printf 'present' > .symlinks-state" \ |
81 | " find . -name symlinks.lst -exec ./symlinks.sh {} create \\; && printf 'present' > .symlinks-state" \ |
| Line 219... | Line 219... | ||
| 219 | backup_and_replace "ld/emulparams/aarch64nto.sh" "${CURRENT_DIR}/ld.emulparams.aarch64nto.sh" |
219 | backup_and_replace "ld/emulparams/aarch64nto.sh" "${CURRENT_DIR}/ld.emulparams.aarch64nto.sh" |
| 220 | 220 | ||
| 221 | # patch ld/emulparams/elf_x86_64nto.sh |
221 | # patch ld/emulparams/elf_x86_64nto.sh |
| 222 | # RATIONALE: insert aarch64 QNX particularities for the GNU linker |
222 | # RATIONALE: insert aarch64 QNX particularities for the GNU linker |
| 223 | backup_and_replace "ld/emulparams/elf_x86_64.sh" "${CURRENT_DIR}/ld.emulparams.elf_x86_64.sh" |
223 | backup_and_replace "ld/emulparams/elf_x86_64.sh" "${CURRENT_DIR}/ld.emulparams.elf_x86_64.sh" |
| - | 224 | ||
| - | 225 | # patch ld/emulparams/i386nto.sh |
|
| - | 226 | # RATIONALE: insert i386 QNX particularities for the GNU linker |
|
| - | 227 | backup_and_replace "ld/emulparams/i386nto.sh" "${CURRENT_DIR}/ld.emulparams.i386nto.sh" |
|
| - | 228 | ||
| - | 229 | # patch ld/emultempl/nto.em |
|
| - | 230 | # RATIONALE: insert i386 QNX particularities for the GNU linker |
|
| - | 231 | backup_and_replace "ld/emultempl/nto.em" "${CURRENT_DIR}/ld.emultempl.nto.em" |
|
| 224 | 232 | ||
| 225 | # define the tools to use when compiling intermediary programs on the build host |
233 | # define the tools to use when compiling intermediary programs on the build host |
| 226 | export AR_FOR_BUILD="/usr/bin/ar" |
234 | export AR_FOR_BUILD="/usr/bin/ar" |
| 227 | export AS_FOR_BUILD="/usr/bin/as" |
235 | export AS_FOR_BUILD="/usr/bin/as" |
| 228 | export LD_FOR_BUILD="/usr/bin/ld" |
236 | export LD_FOR_BUILD="/usr/bin/ld" |
| Line 251... | Line 259... | ||
| 251 | 259 | ||
| 252 | # configure and build the GNU binutils. Note that since these are low level tools, we want static binaries as much as possible. |
260 | # configure and build the GNU binutils. Note that since these are low level tools, we want static binaries as much as possible. |
| 253 | # NOTE: in this context, --host means the machine the built program is expected to RUN on, and --target the machine the built program will FOCUS on. |
261 | # NOTE: in this context, --host means the machine the built program is expected to RUN on, and --target the machine the built program will FOCUS on. |
| 254 | ../../configure \ |
262 | ../../configure \ |
| 255 | --with-sysroot="${QNX_TARGET}" \ |
263 | --with-sysroot="${QNX_TARGET}" \ |
| 256 | --prefix="$(dirname "$(dirname "${QNX_HOST}")")/qnx$(echo "${QNXSDK_VERSION}"|awk -F. '{print $1}')/${BUILD_TARGET_ARCH}/usr" \ |
264 | --prefix="$(dirname "$(dirname "${QNX_HOST}")")/qnx$(echo "${QNXSDK_VERSION}"|awk -F. '{print $1}')/${BUILD_TARGET_ARCH}/usr" \ |
| 257 |
|
265 | --host="x86_64-pc-nto-qnx${QNXSDK_VERSION}" \ |
| 258 |
|
266 | --target="${TARGET_TRIPLE}" \ |
| 259 | |
267 | --disable-shared \ |
| 260 | |
268 | --disable-nls \ |
| 261 | |
269 | --enable-static-link \ |
| 262 | |
270 | --disable-shared-plugins \ |
| 263 | |
271 | --disable-dynamicplugin \ |
| 264 | |
272 | --disable-pie \ |
| 265 | |
273 | --enable-static=yes \ |
| 266 | |
274 | --enable-shared=no \ |
| 267 | --enable-threads \ |
275 | --enable-threads \ |
| 268 | --disable-bootstrap \ |
276 | --disable-bootstrap \ |
| 269 | |
277 | --disable-doc \ |
| - | 278 | --with-bugurl="pm@pmbaty.com" \ |
|
| - | 279 | || exit 1 |
|
| 270 | 280 | ||
| 271 | # and build the whole shit |
281 | # and build the whole shit |
| 272 | make -j 4 MAKEINFO=/bin/true || exit 1 |
282 | make -j 4 MAKEINFO=/bin/true || exit 1 |
| 273 | 283 | ||
| 274 | # now gather all the binutils in one place on the hypervisor's filesystem and name them appropriately |
284 | # now gather all the binutils in one place on the hypervisor's filesystem and name them appropriately |