[lvm-devel] [PATCH] makefile: fail to compile if there are more than one exported symbols.

Lidong Zhong lzhong at suse.com
Tue Jun 16 02:24:01 UTC 2015


Hi Zdenek,

Sorry I forgot to check the latest source, and this has been fixed in your latest commit of make.tmpl.in.
Sorry for the noise :(

Regards,
Lidong
>>> On 6/15/2015 at 05:43 PM, in message <557E9E4A.6060001 at redhat.com>, Zdenek
Kabelac <zkabelac at redhat.com> wrote: 
> Dne 15.6.2015 v 11:26 Lidong Zhong napsal(a): 
> > Hi , 
> > 
> > Without this patch, I would get the following error: 
> > 
> > set -e;\ 
> > R=dm_lv_simple_resume dm_lv_simple_suspend dm_replace_mirror_table;\ 
> > test -z "$R" || { echo "Mismatch between symbols in shared library and lists  
> in .exported_symbols.* files: $R"; false; } ;\ 
> > (for i in ./.exported_symbols.Base ./.exported_symbols.DM_1_02_97 ; do\ 
> > 	echo "${i##*.} {"; echo "	global:";\ 
> > 	/usr/bin/sed "s/^/		/;s/$/;/" < $i;\ 
> > 	test "$i" = Base && { echo "	local:"; echo "		*;"; };\ 
> > 	echo "};";\ 
> > done ) > .export.sym 
> > /bin/sh: line 1: dm_lv_simple_suspend: command not found 
> > ../make.tmpl:508: recipe for target '.export.sym' failed 
> > make[1]: *** [.export.sym] Error 127 
> > make[1]: Leaving directory '/home/lwang/LVM2.2.02.120/libdm' 
> > make.tmpl:323: recipe for target 'libdm.device-mapper' failed 
> > make: *** [libdm.device-mapper] Error 2 
>  
> Hmmm interesting - in my case I get: 
>  
> --- 
> set -e;\ 
> R=$(sort .exported_symbols_generated .exported_symbols.Base  
> .exported_symbols.DM_1_02_98 .exported_symbols.DM_1_02_97 | uniq -u);\ 
> test -z "$R" || { echo "Mismatch between symbols in shared library and lists  
> in .exported_symbols.* files: $R"; false; } ;\ 
> --- 
>  
> While you get directly assigned result. 
>  
> So how is possible that in your case you get already 'translated' string, 
> while in my case I get regular  shell evaluation  R=$(sort....) which should  
>  
> not need "". 
>  
> Are you testing against latest 'git' HEAD ? 
>  
> Do you this in make.tmpl.in? 
>  
> .export.sym: .exported_symbols_generated $(EXPORTED_SYMBOLS) 
> ifeq (,$(firstword $(EXPORTED_SYMBOLS))) 
> 	set -e; (echo "Base {"; echo "	global:";\ 
> 		 $(SED) "s/^/		/;s/$$/;/" $<;\ 
> 		 echo "	local:"; echo "		*;"; echo "};") > $@ 
> else 
> 	set -e;\ 
> 	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:";\ 
> 		$(SED) "s/^/		/;s/$$/;/" $$i;\ 
> 		test "$$i" = Base && { echo "	local:"; echo "		*;"; };\ 
> 		echo "};";\ 
> 	done > $@ 
> endif 
>  
>  
> Zdenek 
>  
> -- 
> lvm-devel mailing list 
> lvm-devel at redhat.com 
> https://www.redhat.com/mailman/listinfo/lvm-devel 
>  
>  






More information about the lvm-devel mailing list