Javier Jardón pushed to branch jjardon/strip-binaries-removal at BuildStream / buildstream
Commits:
-
e9fc4dcc
by Javier Jardón at 2018-12-04T20:52:19Z
-
131bc560
by Javier Jardón at 2018-12-04T20:52:19Z
-
d1d838a1
by Javier Jardón at 2018-12-04T20:52:19Z
12 changed files:
- NEWS
- buildstream/data/projectconfig.yaml
- buildstream/plugins/elements/autotools.py
- buildstream/plugins/elements/cmake.py
- buildstream/plugins/elements/distutils.py
- buildstream/plugins/elements/make.py
- buildstream/plugins/elements/makemaker.py
- buildstream/plugins/elements/manual.py
- buildstream/plugins/elements/meson.py
- buildstream/plugins/elements/modulebuild.py
- buildstream/plugins/elements/pip.py
- buildstream/plugins/elements/qmake.py
Changes:
| ... | ... | @@ -2,6 +2,10 @@ |
| 2 | 2 |
buildstream 1.3.1
|
| 3 | 3 |
=================
|
| 4 | 4 |
|
| 5 |
+ o BREAKING CHANGE: Default strip-commands have been removed as they are too
|
|
| 6 |
+ specific. Recommendation is if you are building in Linux is to use the
|
|
| 7 |
+ ones begin used in freedesktop-sdk project, for example
|
|
| 8 |
+ |
|
| 5 | 9 |
o All elements must now be suffixed with `.bst`
|
| 6 | 10 |
Attempting to use an element that does not have the `.bst` extension,
|
| 7 | 11 |
will result in a warning.
|
| ... | ... | @@ -44,38 +44,8 @@ variables: |
| 44 | 44 |
# Indicates the build installation directory in the sandbox
|
| 45 | 45 |
install-root: /buildstream-install
|
| 46 | 46 |
|
| 47 |
- # Arguments for tooling used when stripping debug symbols
|
|
| 48 |
- objcopy-link-args: --add-gnu-debuglink
|
|
| 49 |
- objcopy-extract-args: |
|
|
| 50 |
- |
|
| 51 |
- --only-keep-debug --compress-debug-sections
|
|
| 52 |
- |
|
| 53 |
- strip-args: |
|
|
| 54 |
- |
|
| 55 |
- --remove-section=.comment --remove-section=.note --strip-unneeded
|
|
| 56 |
- |
|
| 57 |
- # Generic implementation for stripping debugging symbols
|
|
| 58 |
- strip-binaries: |
|
|
| 59 |
- |
|
| 60 |
- cd "%{install-root}" && find -type f \
|
|
| 61 |
- '(' -perm -111 -o -name '*.so*' \
|
|
| 62 |
- -o -name '*.cmxs' -o -name '*.node' ')' \
|
|
| 63 |
- -exec sh -ec \
|
|
| 64 |
- 'read -n4 hdr <"$1" # check for elf header
|
|
| 65 |
- case "$1" in
|
|
| 66 |
- %{install-root}%{debugdir}/*)
|
|
| 67 |
- exit 0
|
|
| 68 |
- ;;
|
|
| 69 |
- esac
|
|
| 70 |
- if [ "$hdr" != "$(printf \\x7fELF)" ]; then
|
|
| 71 |
- exit 0
|
|
| 72 |
- fi
|
|
| 73 |
- debugfile="%{install-root}%{debugdir}/$1"
|
|
| 74 |
- mkdir -p "$(dirname "$debugfile")"
|
|
| 75 |
- objcopy %{objcopy-extract-args} "$1" "$debugfile"
|
|
| 76 |
- chmod 644 "$debugfile"
|
|
| 77 |
- strip %{strip-args} "$1"
|
|
| 78 |
- objcopy %{objcopy-link-args} "$debugfile" "$1"' - {} ';'
|
|
| 47 |
+ # You need to override this with the commands specific for your system
|
|
| 48 |
+ strip-binaries: ""
|
|
| 79 | 49 |
|
| 80 | 50 |
# Generic implementation for reproducible python builds
|
| 81 | 51 |
fix-pyc-timestamps: |
|
| ... | ... | @@ -196,4 +166,4 @@ shell: |
| 196 | 166 |
|
| 197 | 167 |
# Command to run when `bst shell` does not provide a command
|
| 198 | 168 |
#
|
| 199 |
- command: [ 'sh', '-i' ]
|
|
| \ No newline at end of file | ||
| 169 |
+ command: [ 'sh', '-i' ]
|
| ... | ... | @@ -51,6 +51,14 @@ Here is the default configuration for the ``autotools`` element in full: |
| 51 | 51 |
.. literalinclude:: ../../../buildstream/plugins/elements/autotools.yaml
|
| 52 | 52 |
:language: yaml
|
| 53 | 53 |
|
| 54 |
+.. note::
|
|
| 55 |
+ |
|
| 56 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 57 |
+ appropiate commands depending of the system you are building.
|
|
| 58 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 59 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 60 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 61 |
+ |
|
| 54 | 62 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 55 | 63 |
details on common configuration options for build elements.
|
| 56 | 64 |
"""
|
| ... | ... | @@ -50,6 +50,14 @@ Here is the default configuration for the ``cmake`` element in full: |
| 50 | 50 |
.. literalinclude:: ../../../buildstream/plugins/elements/cmake.yaml
|
| 51 | 51 |
:language: yaml
|
| 52 | 52 |
|
| 53 |
+.. note::
|
|
| 54 |
+ |
|
| 55 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 56 |
+ appropiate commands depending of the system you are building.
|
|
| 57 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 58 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 59 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 60 |
+ |
|
| 53 | 61 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 54 | 62 |
details on common configuration options for build elements.
|
| 55 | 63 |
"""
|
| ... | ... | @@ -27,6 +27,14 @@ The distutils default configuration: |
| 27 | 27 |
.. literalinclude:: ../../../buildstream/plugins/elements/distutils.yaml
|
| 28 | 28 |
:language: yaml
|
| 29 | 29 |
|
| 30 |
+.. note::
|
|
| 31 |
+ |
|
| 32 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 33 |
+ appropiate commands depending of the system you are building.
|
|
| 34 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 35 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 36 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 37 |
+ |
|
| 30 | 38 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 31 | 39 |
details on common configuration options for build elements.
|
| 32 | 40 |
"""
|
| ... | ... | @@ -32,6 +32,14 @@ Here is the default configuration for the ``make`` element in full: |
| 32 | 32 |
.. literalinclude:: ../../../buildstream/plugins/elements/make.yaml
|
| 33 | 33 |
:language: yaml
|
| 34 | 34 |
|
| 35 |
+.. note::
|
|
| 36 |
+ |
|
| 37 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 38 |
+ appropiate commands depending of the system you are building.
|
|
| 39 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 40 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 41 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 42 |
+ |
|
| 35 | 43 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 36 | 44 |
details on common configuration options for build elements.
|
| 37 | 45 |
"""
|
| ... | ... | @@ -27,6 +27,14 @@ The MakeMaker default configuration: |
| 27 | 27 |
.. literalinclude:: ../../../buildstream/plugins/elements/makemaker.yaml
|
| 28 | 28 |
:language: yaml
|
| 29 | 29 |
|
| 30 |
+.. note::
|
|
| 31 |
+ |
|
| 32 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 33 |
+ appropiate commands depending of the system you are building.
|
|
| 34 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 35 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 36 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 37 |
+ |
|
| 30 | 38 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 31 | 39 |
details on common configuration options for build elements.
|
| 32 | 40 |
"""
|
| ... | ... | @@ -27,6 +27,15 @@ The empty configuration is as such: |
| 27 | 27 |
.. literalinclude:: ../../../buildstream/plugins/elements/manual.yaml
|
| 28 | 28 |
:language: yaml
|
| 29 | 29 |
|
| 30 |
+.. note::
|
|
| 31 |
+ |
|
| 32 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 33 |
+ appropiate commands depending of the system you are building.
|
|
| 34 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 35 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 36 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 37 |
+ |
|
| 38 |
+ |
|
| 30 | 39 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 31 | 40 |
details on common configuration options for build elements.
|
| 32 | 41 |
"""
|
| ... | ... | @@ -47,6 +47,14 @@ Here is the default configuration for the ``meson`` element in full: |
| 47 | 47 |
.. literalinclude:: ../../../buildstream/plugins/elements/meson.yaml
|
| 48 | 48 |
:language: yaml
|
| 49 | 49 |
|
| 50 |
+.. note::
|
|
| 51 |
+ |
|
| 52 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 53 |
+ appropiate commands depending of the system you are building.
|
|
| 54 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 55 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 56 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 57 |
+ |
|
| 50 | 58 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 51 | 59 |
details on common configuration options for build elements.
|
| 52 | 60 |
"""
|
| ... | ... | @@ -27,6 +27,14 @@ The modulebuild default configuration: |
| 27 | 27 |
.. literalinclude:: ../../../buildstream/plugins/elements/modulebuild.yaml
|
| 28 | 28 |
:language: yaml
|
| 29 | 29 |
|
| 30 |
+.. note::
|
|
| 31 |
+ |
|
| 32 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 33 |
+ appropiate commands depending of the system you are building.
|
|
| 34 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 35 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 36 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 37 |
+ |
|
| 30 | 38 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 31 | 39 |
details on common configuration options for build elements.
|
| 32 | 40 |
"""
|
| ... | ... | @@ -27,6 +27,14 @@ The pip default configuration: |
| 27 | 27 |
.. literalinclude:: ../../../buildstream/plugins/elements/pip.yaml
|
| 28 | 28 |
:language: yaml
|
| 29 | 29 |
|
| 30 |
+.. note::
|
|
| 31 |
+ |
|
| 32 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 33 |
+ appropiate commands depending of the system you are building.
|
|
| 34 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 35 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 36 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 37 |
+ |
|
| 30 | 38 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 31 | 39 |
details on common configuration options for build elements.
|
| 32 | 40 |
"""
|
| ... | ... | @@ -27,6 +27,14 @@ The qmake default configuration: |
| 27 | 27 |
.. literalinclude:: ../../../buildstream/plugins/elements/qmake.yaml
|
| 28 | 28 |
:language: yaml
|
| 29 | 29 |
|
| 30 |
+.. note::
|
|
| 31 |
+ |
|
| 32 |
+ The `strip-binaries` variable is by default **empty**. You need to use the
|
|
| 33 |
+ appropiate commands depending of the system you are building.
|
|
| 34 |
+ If you are targetting Linux, ones known to work are the ones used by the
|
|
| 35 |
+ `freedesktop-sdk <https://freedesktop-sdk.io/>`_, you can take a look to them in their
|
|
| 36 |
+ `project.conf <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/blob/freedesktop-sdk-18.08.21/project.conf#L74>`_
|
|
| 37 |
+ |
|
| 30 | 38 |
See :ref:`built-in functionality documentation <core_buildelement_builtins>` for
|
| 31 | 39 |
details on common configuration options for build elements.
|
| 32 | 40 |
"""
|
