linux-x86: Set emulator path using a "noop" script without argument.

This will fix issue where emulator is used doing:

  COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} /path/to/prog arg1 arg2

Prior to this commit, it wasn't working because the following command
was used:

  /bin/sh -c /path/to/prog arg1 arg2
This commit is contained in:
Jean-Christophe Fillion-Robin 2016-04-15 19:39:21 -04:00
parent 4ccd459994
commit dc871beb50
3 changed files with 6 additions and 2 deletions

View File

@ -14,6 +14,7 @@ ENV PATH ${PATH}:${CROSS_ROOT}/bin
RUN mkdir -p ${CROSS_ROOT}/bin
COPY ${CROSS_TRIPLE}.sh ${CROSS_ROOT}/bin/${CROSS_TRIPLE}.sh
COPY ${CROSS_TRIPLE}-as.sh ${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as.sh
COPY ${CROSS_TRIPLE}-noop.sh ${CROSS_ROOT}/bin/${CROSS_TRIPLE}-noop.sh
RUN cd ${CROSS_ROOT}/bin && \
chmod +x ${CROSS_TRIPLE}.sh && \
ln -s /usr/bin/x86_64-linux-gnu-gcc && \
@ -22,7 +23,8 @@ RUN cd ${CROSS_ROOT}/bin && \
ln -s ${CROSS_TRIPLE}.sh ${CROSS_TRIPLE}-gcc && \
ln -s ${CROSS_TRIPLE}.sh ${CROSS_TRIPLE}-g++ && \
ln -s ${CROSS_TRIPLE}-as.sh ${CROSS_TRIPLE}-as && \
ln -s /usr/bin/x86_64-linux-gnu-ar ${CROSS_TRIPLE}-ar
ln -s /usr/bin/x86_64-linux-gnu-ar ${CROSS_TRIPLE}-ar && \
ln -s ${CROSS_TRIPLE}-noop.sh ${CROSS_TRIPLE}-noop
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \

View File

@ -17,4 +17,4 @@ set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
# like FindOpenSSL.
set(CMAKE_IGNORE_PATH /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/lib/)
set(CMAKE_CROSSCOMPILING_EMULATOR sh -c)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/${cross_triple}/bin/${cross_triple}-noop)

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec "$@"