Javier Jardón pushed to branch jjardon/strip-binaries-removal at BuildStream / buildstream
Commits:
-
f7581026
by Jürg Billeter at 2018-12-03T16:27:03Z
-
0ceb467e
by Javier Jardón at 2018-12-04T20:52:53Z
-
706b4353
by Javier Jardón at 2018-12-04T20:52:53Z
-
15c42f8f
by Javier Jardón at 2018-12-04T20:52:53Z
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 |
"""
|