You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by "lupyuen (via GitHub)" <gi...@apache.org> on 2023/10/10 04:34:51 UTC

[PR] arm, arm64, xtensa, libxx: Change `sed -r` to `sed -E` to support macOS [nuttx]

lupyuen opened a new pull request, #10881:
URL: https://github.com/apache/nuttx/pull/10881

   ## Summary
   
   When we build NuttX on macOS, it shows many `sed` messages (and the build still completes successfully):
   
   ```text
   $ tools/configure.sh pinephone:nsh
   $ make
   sed: illegal option -- r
   ```
   
   [(See the Complete Log)](https://gist.github.com/lupyuen/1c3f1f1d71993609bed3b31767595beb#file-pinephone-release-log-L282-L690)
   
   This is due to the Makefiles executing `sed -r` which is not a valid option on macOS. [(As explained here)](https://github.com/apache/nuttx/pull/10655#issuecomment-1754168154)
   
   This PR proposes to change `sed -r` to `sed -E` because:
   
   1. `sed -E` on macOS is equivalent to `sed -r` on Linux [(See this)](https://unix.stackexchange.com/questions/13711/differences-between-sed-on-mac-osx-and-other-standard-sed)
   
   1. `sed -E` and `sed -r` are aliases according to the [GNU `sed` Manual](https://www.gnu.org/software/sed/manual/sed.html#Command_002dLine-Options)
   
   1. `sed -E` is already used in [nuttx_add_romfs.cmake](https://github.com/apache/nuttx/blob/master/cmake/nuttx_add_romfs.cmake#L111), [nuttx_add_symtab.cmake](https://github.com/apache/nuttx/blob/master/cmake/nuttx_add_symtab.cmake#L81-L84) and [process_config.sh](https://github.com/apache/nuttx/blob/master/tools/process_config.sh#L28)
   
   ## Impact
   
   On macOS: NuttX now builds without showing any `sed` messages.
   
   On other platforms: There should be no impact, since `sed -E` and `sed -r` are functionally identical.
   
   ## Testing
   
   `sed` is used by the Makefiles to extract the GCC Major Version and the Clang Major / Minor Version. We tested the `sed` commands on Linux and macOS to verify that they work correctly:
   
   ```bash
   ## sed 4.9 on Linux 6.3.9 (Manjaro Arm64)
   $ aarch64-none-elf-gcc --version
   aarch64-none-elf-gcc (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205
   
   $ aarch64-none-elf-gcc --version | grep gcc | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/" | cut -d'.' -f1
   12
   
   $ clang --version
   clang version 15.0.7
   
   $ clang --version | grep "clang version" | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/"
   15.0
   
   ## sed on macOS 10.15.7
   $ aarch64-none-elf-gcc --version
   aarch64-none-elf-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712
   
   $ aarch64-none-elf-gcc --version | grep gcc | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/" | cut -d'.' -f1
   11
   
   $ clang --version
   clang version 3.9.1 (tags/RELEASE_391/final)
   
   $ clang --version | grep "clang version" | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/"
   3.9
   ````
   
   On macOS: NuttX now builds without showing any `sed` messages.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] arm, arm64, xtensa, libxx: Change `sed -r` to `sed -E` to support macOS [nuttx]

Posted by "pkarashchenko (via GitHub)" <gi...@apache.org>.
pkarashchenko merged PR #10881:
URL: https://github.com/apache/nuttx/pull/10881


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org