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 |