[lvm-devel] [PATCH] makefile: fail to compile if there are more than one exported symbols.
Zdenek Kabelac
zkabelac at redhat.com
Mon Jun 15 09:12:31 UTC 2015
Dne 15.6.2015 v 04:58 Lidong Zhong napsal(a):
>>>> On 6/12/2015 at 11:51 PM, in message <557B001F.30804 at redhat.com>, Zdenek
> Kabelac <zkabelac at redhat.com> wrote:
>> Dne 12.6.2015 v 09:33 Lidong Zhong napsal(a):
>>> ---
>>> make.tmpl.in | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/make.tmpl.in b/make.tmpl.in
>>> index 731dab7..60ddd01 100644
>>> --- a/make.tmpl.in
>>> +++ b/make.tmpl.in
>>> @@ -499,7 +499,7 @@ ifeq (,$(firstword $(EXPORTED_SYMBOLS)))
>>> echo " local:"; echo " *;"; echo "};") > $@
>>> else
>>> set -e;\
>>> - R=$$(sort $^ | uniq -u);\
>>> + R="$$(sort $^ | uniq -u)";\
>>> test -z "$$R" || { echo "Mismatch between symbols in shared library and
>> lists in .exported_symbols.* files: $$R"; false; } ;\
>>> for i in $(EXPORTED_SYMBOLS); do\
>>> echo "$${i##*.} {"; echo " global:";\
>>
>> Hi
>>
>> Do you have some example where it fails without "" ?
>> Bash normally should assign $VARS directly.
> Hi Zdenek,
>
> As the `echo` outputs, if there are more symbols got from `sort $^ | uniq -u`, there will be
> an bash error.
> I found this exactly because I forgot to add these symbols to .exported_symbols.* files.
But the bash error here is wanted when symbols are missing - it's the purpose
to stop compilation. So please specify more closely the example where it fails
because of missing "".
This output is wanted:
Mismatch between symbols in shared library and lists in .exported_symbols.*
files: dm_tree_node_set_XXXX
dm_tree_node_set_YYYY
../make.tmpl:501: recipe for target '.export.sym' failed
make: *** [.export.sym] Error 1
If the dm_tree_node_set_XXXX|YYYY is not defined in any .exported_symbols*
Zdenek
More information about the lvm-devel
mailing list