From: <Ian...@st...> - 2003-03-04 09:51:45
|
I had the same problem when I tried to compile VXL using ICC. My temporary solution was to stop build vcsl. I believe I left an option in the root CMakeLists.txt to do just that. Slightly more usefully my experiments suggestsed that it was not worth using icc over gcc. Test in vnl and vil2 compiled with icc were by no means consistently better, and frequently 2 or 3 times slower than the same code compiled with gcc 3.2. (All optimisation settings on) There appearsed to be no simple pattern for the relative speeds. The same code would sometimes be 50% slower, using gcc with certain parameters, and 50% faster using gcc with different parameters. regards, Ian. > -----Original Message----- > From: Wheeler, Frederick W (Research) [mailto:wh...@cr...] > Sent: Tuesday, March 04, 2003 12:05 AM > To: VXL Maintainers List (E-mail) > Subject: [Vxl-maintainers] vcsl missing symbol with ICC > > > I'm trying to get VXL to compile under ICC (Intel C++ > compiler). CMake knows how to use this > compiler, so a vanilla static build goes pretty smoothly, > until it comes time to link with vcsl.a. > I'm getting the following undefined symbol error. > > > Building executable vcsl_example1... > /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a(vcsl_cartesia > n_3d.o): In function > `vcsl_cartesian_3d': > /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx > :16: undefined reference to > `vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatia > l> const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&)' > /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx > :16: undefined reference to > `vcsl_spatial::recursive_path_from_local_to_cs(vbl_smart_ptr<v > csl_spatial> const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&)' > > > If anybody familiar with vcsl knows about anything funny with > this class/method that might be an > issue here, please let me know. Also, general tips on > debugging missing symbols would be > appreciated. > > I can't figure out why this symbol is reported missing. nm > tells me that this exact symbol is > defined in vcsl_spatial.o, and is defined in vcsl.a. vcsl.a > also lists the symbol as undefined, I > guess because it is needed by other code that is in that > library. example1.o does not directly use > this symbol, so if it is required, that requirement must be > because it is (both defined and) > undefined in vcsl.a. > > I've been VERY careful to make sure it is in fact the exact > same symbol name that is defined in > vcsl_spatial.o and in vcsl.a and also undefined in vcsl.a. > The demangled names are precisely the > same. The non-demangled names have slight differences at the > end, but this difference is consistent > with other stuff in the library, for which an error is not reported. > > > Here is the slight difference in symbol names without demangling. > > > % nm -g ~/work_vxl/vxl_bld_icc/lib/libvcsl.a | grep > 'path_from_local_to_cs' | grep -v > path_from_local_to_cs_exists|grep -v recursive_path_from_local_to_cs > 00001650 T > _ZN12vcsl_spatial21path_from_local_to_csERK13vbl_smart_ptrIS_E > dRSt6vectorIS0_I27vcsl_spatial_transfor > mationESaIS6_EERSt6vectorIbSaIbEE > U > _ZN12vcsl_spatial21path_from_local_to_csERK13vbl_smart_ptrIS_E > dRSt6vectorIS0_I27vcsl_spatial_transfor > mationESaIS6_EERS4_IbSaIbEE > ... > > Here are the identical symbol names with demangling. > > > % nm -gC ~/work_vxl/vxl_bld_icc/lib/libvcsl.a | grep > 'path_from_local_to_cs' | grep -v > path_from_local_to_cs_exists|grep -v recursive_path_from_local_to_cs > 00001650 T > vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial > > const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&) > U > vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial > > const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&) > ... > > For completeness, here is how I prepopulate the CMake cache. > > > CMAKE_C_COMPILER:FILEPATH=icc > CMAKE_CXX_COMPILER:FILEPATH=icc > CMAKE_C_FLAGS:STRING=-w -O0 -g > CMAKE_CXX_FLAGS:STRING=-w -O0 -g > BUILD_SHARED_LIBS:BOOL=OFF > BUILD_VGUI:BOOL=ON > VXL_FORCE_V3P_ZLIB:BOOL=YES > VXL_FORCE_V3P_PNG:BOOL=YES > VXL_FORCE_V3P_JPEG:BOOL=YES > VXL_FORCE_V3P_MPEG2:BOOL=YES > VXL_FORCE_V3P_TIFF:BOOL=YES > > > Here is some version info on the icc compiler. It mostly > mimics gcc command-line options. > > > % icc -V > Intel(R) C++ Compiler for 32-bit applications, Version 7.0 > Build 20021021Z > Copyright (C) 1985-2002 Intel Corporation. All rights reserved. > > GNU ld version 2.10.91 (with BFD 2.10.91.0.2) > Supported emulations: > elf_i386 > i386linux > elf_i386_glibc21 > > > Baffled ... > Fred Wheeler > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of > TotalView, The debugger > for complex code. Debugging C/C++ programs can leave you > feeling lost and > disoriented. TotalView can help you find your way. Available > on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Vxl-maintainers mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-maintainers > |
From: Wheeler, F. W (Research) <wh...@cr...> - 2003-03-04 13:13:13
|
Andrew, Here are what I think are the relevant command lines. Thanks for having a look. I also attached a file that has the entire output of "make -n" after removing those .o files. Fred Wheeler % rm -f v*cartesian*.o vcsl_spatial.o % make -n /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a echo "Building object file vcsl_cartesian.o..." icc -o vcsl_cartesian.o -w -O0 -g -I/home/wheeler/work_vxl/vxl_src/core/vcsl -I/home/wheeler/work_vxl/vxl_bld_icc/vcl -I/home/wheeler/work_vxl/vxl_bld_icc/core -I/home/wheeler/work_vxl/vxl_src/vcl -I/home/wheeler/work_vxl/vxl_src/core -DVXL_WARN_DEPRECATED -DVXL_WARN_DEPRECATED_ONCE -c /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian.cxx echo "Building object file vcsl_spatial.o..." icc -o vcsl_spatial.o -w -O0 -g -I/home/wheeler/work_vxl/vxl_src/core/vcsl -I/home/wheeler/work_vxl/vxl_bld_icc/vcl -I/home/wheeler/work_vxl/vxl_bld_icc/core -I/home/wheeler/work_vxl/vxl_src/vcl -I/home/wheeler/work_vxl/vxl_src/core -DVXL_WARN_DEPRECATED -DVXL_WARN_DEPRECATED_ONCE -c /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_spatial.cxx echo "Building object file vcsl_cartesian_2d.o..." icc -o vcsl_cartesian_2d.o -w -O0 -g -I/home/wheeler/work_vxl/vxl_src/core/vcsl -I/home/wheeler/work_vxl/vxl_bld_icc/vcl -I/home/wheeler/work_vxl/vxl_bld_icc/core -I/home/wheeler/work_vxl/vxl_src/vcl -I/home/wheeler/work_vxl/vxl_src/core -DVXL_WARN_DEPRECATED -DVXL_WARN_DEPRECATED_ONCE -c /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_2d.cxx echo "Building object file vcsl_cartesian_3d.o..." icc -o vcsl_cartesian_3d.o -w -O0 -g -I/home/wheeler/work_vxl/vxl_src/core/vcsl -I/home/wheeler/work_vxl/vxl_bld_icc/vcl -I/home/wheeler/work_vxl/vxl_bld_icc/core -I/home/wheeler/work_vxl/vxl_src/vcl -I/home/wheeler/work_vxl/vxl_src/core -DVXL_WARN_DEPRECATED -DVXL_WARN_DEPRECATED_ONCE -c /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx echo "Building object file vcsl_cylindrical_to_cartesian_3d.o..." icc -o vcsl_cylindrical_to_cartesian_3d.o -w -O0 -g -I/home/wheeler/work_vxl/vxl_src/core/vcsl -I/home/wheeler/work_vxl/vxl_bld_icc/vcl -I/home/wheeler/work_vxl/vxl_bld_icc/core -I/home/wheeler/work_vxl/vxl_src/vcl -I/home/wheeler/work_vxl/vxl_src/core -DVXL_WARN_DEPRECATED -DVXL_WARN_DEPRECATED_ONCE -c /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cylindrical_to_cartesian_3d.cxx echo "Building static library /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a..." /home/wheeler/work_vxl/cmake_usr_icc/bin/cmake -E remove -f /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a /usr/bin/ar cr /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a vcsl_dimension.o vcsl_length.o vcsl_angle.o vcsl_unit.o vcsl_length_unit.o vcsl_meter.o vcsl_angle_unit.o vcsl_radian.o vcsl_degree.o vcsl_axis.o vcsl_coordinate_system.o vcsl_cartesian.o vcsl_spatial.o vcsl_graph.o vcsl_cartesian_2d.o vcsl_cartesian_3d.o vcsl_polar.o vcsl_cylindrical.o vcsl_spherical.o vcsl_spheroid.o vcsl_geographic.o vcsl_utm.o vcsl_geocentric.o vcsl_geodetic.o vcsl_lambertian.o vcsl_spatial_transformation.o vcsl_composition.o vcsl_scale.o vcsl_translation.o vcsl_rotation.o vcsl_displacement.o vcsl_cylindrical_to_cartesian_3d.o vcsl_perspective.o vcsl_matrix.o Templates/vbl_smart_ptr+vcsl_angle-.o Templates/vbl_smart_ptr+vcsl_spatial_transformation-.o Templates/vbl_smart_ptr+vcsl_angle_unit-.o Templates/vbl_smart_ptr+vcsl_axis-.o Templates/vbl_smart_ptr+vcsl_cartesian-.o Templates/vbl_smart_ptr+vcsl_cartesian_2d-.o Templates/vbl_smart_ptr+vcsl_cartesian_3d-.o Templates/vbl_smart_ptr+vcsl_composition-.o Templates/vbl_smart_ptr+vcsl_coordinate_system-.o Templates/vbl_smart_ptr+vcsl_cylindrical-.o Templates/vbl_smart_ptr+vcsl_degree-.o Templates/vbl_smart_ptr+vcsl_cylindrical_to_cartesian_3d-.o Templates/vbl_smart_ptr+vcsl_dimension-.o Templates/vbl_smart_ptr+vcsl_displacement-.o Templates/vbl_smart_ptr+vcsl_geocentric-.o Templates/vbl_smart_ptr+vcsl_geodetic-.o Templates/vbl_smart_ptr+vcsl_geographic-.o Templates/vbl_smart_ptr+vcsl_graph-.o Templates/vbl_smart_ptr+vcsl_lambertian-.o Templates/vbl_smart_ptr+vcsl_length-.o Templates/vbl_smart_ptr+vcsl_length_unit-.o Templates/vbl_smart_ptr+vcsl_matrix-.o Templates/vbl_smart_ptr+vcsl_matrix_param-.o Templates/vbl_smart_ptr+vcsl_meter-.o Templates/vbl_smart_ptr+vcsl_perspective-.o Templates/vbl_smart_ptr+vcsl_polar-.o Templates/vbl_smart_ptr+vcsl_radian-.o Templates/vbl_smart_ptr+vcsl_rotation-.o Templates/vbl_smart_ptr+vcsl_scale-.o Templates/vbl_smart_ptr+vcsl_spatial-.o Templates/vcl_vector+vcsl_spatial_transformation_sptr-.o Templates/vbl_smart_ptr+vcsl_spherical-.o Templates/vbl_smart_ptr+vcsl_spheroid-.o Templates/vbl_smart_ptr+vcsl_translation-.o Templates/vbl_smart_ptr+vcsl_unit-.o Templates/vbl_smart_ptr+vcsl_utm-.o Templates/vcl_vector+vcsl_axis_sptr-.o Templates/vcl_vector+vcsl_interpolator-.o Templates/vcl_vector+vcsl_matrix_param_sptr-.o Templates/vcl_vector+vcsl_spatial_sptr-.o /usr/bin/ranlib /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a % cd examples % make -n vcsl_examples echo "Building executable vcsl_example1..." icc -w -O0 -g -fPIC example1.o -o vcsl_example1 -rdynamic -L/home/wheeler/work_vxl/vxl_bld_icc/lib -lvcsl -lvnl -lvbl -lvcl -lm -Wl,-rpath,/home/wheeler/work_vxl/vxl_bld_icc/lib > -----Original Message----- > From: Andrew Fitzgibbon [mailto:aw...@ro...] > Sent: Monday, March 03, 2003 7:29 PM > To: Wheeler, Frederick W (Research) > Subject: RE: [Vxl-maintainers] vcsl missing symbol with ICC > > > > Can you rm the objects (v*cartesian*.o and vcsl_spatial.o), remake > and show me the compiler command lines? > > begin 600 make.out.txt M;6%K92`@8VUA:V4N9&5P96YD<PT*;6%K92`@8VUA:V4N8VAE8VM?9&5P96YD M<PT*;6%K92`@+68@8VUA:V4N8VAE8VM?9&5P96YD<PT*;6%K92`@+68@8VUA M:V4N8VAE8VM?9&5P96YD<R!A;&P-"FUA:V4@("UF(&-M86ME+F-H96-K7V1E M<&5N9',@8VUA:V4N9&5P96YD<PT*;6%K92`@86QL#0IE8VAO(")"=6EL9&EN M9R!O8FIE8W0@9FEL92!V8W-L7V-A<G1E<VEA;BYO+BXN(@T*:6-C("UO('9C M<VQ?8V%R=&5S:6%N+F\@("UW("U/,"`M9R`M22]H;VUE+W=H965L97(O=V]R M:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VP@+4DO:&]M92]W:&5E;&5R+W=O<FM? M=GAL+W9X;%]B;&1?:6-C+W9C;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO M=GAL7V)L9%]I8V,O8V]R92`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL M7W-R8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R M92`@("U$5EA,7U=!4DY?1$504D5#051%1"`M1%983%]705).7T1%4%)%0T%4 M141?3TY#12`@+6,@+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O M<F4O=F-S;"]V8W-L7V-A<G1E<VEA;BYC>'@-"F5C:&\@(D)U:6QD:6YG(&]B M:F5C="!F:6QE('9C<VQ?<W!A=&EA;"YO+BXN(@T*:6-C("UO('9C<VQ?<W!A M=&EA;"YO("`M=R`M3S`@+6<@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X M;%]S<F,O8V]R92]V8W-L("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q? M8FQD7VEC8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1? M:6-C+V-O<F4@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L M("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%98 M3%]705).7T1%4%)%0T%4140@+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@ M("UC("]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO M=F-S;%]S<&%T:6%L+F-X>`T*96-H;R`B0G5I;&1I;F<@;V)J96-T(&9I;&4@ M=F-S;%]C87)T97-I86Y?,F0N;RXN+B(-"FEC8R`M;R!V8W-L7V-A<G1E<VEA M;E\R9"YO("`M=R`M3S`@+6<@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X M;%]S<F,O8V]R92]V8W-L("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q? M8FQD7VEC8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1? M:6-C+V-O<F4@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L M("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%98 M3%]705).7T1%4%)%0T%4140@+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@ M("UC("]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO M=F-S;%]C87)T97-I86Y?,F0N8WAX#0IE8VAO(")"=6EL9&EN9R!O8FIE8W0@ M9FEL92!V8W-L7V-A<G1E<VEA;E\S9"YO+BXN(@T*:6-C("UO('9C<VQ?8V%R M=&5S:6%N7S-D+F\@("UW("U/,"`M9R`M22]H;VUE+W=H965L97(O=V]R:U]V M>&PO=GAL7W-R8R]C;W)E+W9C<VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL M+W9X;%]B;&1?:6-C+W9C;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL M7V)L9%]I8V,O8V]R92`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R M8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92`@ M("U$5EA,7U=!4DY?1$504D5#051%1"`M1%983%]705).7T1%4%)%0T%4141? M3TY#12`@+6,@+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4O M=F-S;"]V8W-L7V-A<G1E<VEA;E\S9"YC>'@-"F5C:&\@(D)U:6QD:6YG(&]B M:F5C="!F:6QE('9C<VQ?8WEL:6YD<FEC86Q?=&]?8V%R=&5S:6%N7S-D+F\N M+BXB#0II8V,@+6\@=F-S;%]C>6QI;F1R:6-A;%]T;U]C87)T97-I86Y?,V0N M;R`@+7<@+4\P("UG("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C M+V-O<F4O=F-S;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I M8V,O=F-L("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]C M;W)E("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+W9C;"`M22]H M;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E("`@+4166$Q?5T%2 M3E]$15!214-!5$5$("U$5EA,7U=!4DY?1$504D5#051%1%]/3D-%("`M8R`O M:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92]V8W-L+W9C<VQ? M8WEL:6YD<FEC86Q?=&]?8V%R=&5S:6%N7S-D+F-X>`T*96-H;R`B0G5I;&1I M;F<@<W1A=&EC(&QI8G)A<GD@+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q? M8FQD7VEC8R]L:6(O;&EB=F-S;"YA+BXN(@T*+VAO;64O=VAE96QE<B]W;W)K M7W9X;"]C;6%K95]U<W)?:6-C+V)I;B]C;6%K92`M12!R96UO=F4@+68@+VAO M;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]L:6(O;&EB=F-S;"YA M#0HO=7-R+V)I;B]A<B!C<B`O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B M;&1?:6-C+VQI8B]L:6)V8W-L+F$@('9C<VQ?9&EM96YS:6]N+F\@=F-S;%]L M96YG=&@N;R!V8W-L7V%N9VQE+F\@=F-S;%]U;FET+F\@=F-S;%]L96YG=&A? M=6YI="YO('9C<VQ?;65T97(N;R!V8W-L7V%N9VQE7W5N:70N;R!V8W-L7W)A M9&EA;BYO('9C<VQ?9&5G<F5E+F\@=F-S;%]A>&ES+F\@=F-S;%]C;V]R9&EN M871E7W-Y<W1E;2YO('9C<VQ?8V%R=&5S:6%N+F\@=F-S;%]S<&%T:6%L+F\@ M=F-S;%]G<F%P:"YO('9C<VQ?8V%R=&5S:6%N7S)D+F\@=F-S;%]C87)T97-I M86Y?,V0N;R!V8W-L7W!O;&%R+F\@=F-S;%]C>6QI;F1R:6-A;"YO('9C<VQ? M<W!H97)I8V%L+F\@=F-S;%]S<&AE<F]I9"YO('9C<VQ?9V5O9W)A<&AI8RYO M('9C<VQ?=71M+F\@=F-S;%]G96]C96YT<FEC+F\@=F-S;%]G96]D971I8RYO M('9C<VQ?;&%M8F5R=&EA;BYO('9C<VQ?<W!A=&EA;%]T<F%N<V9O<FUA=&EO M;BYO('9C<VQ?8V]M<&]S:71I;VXN;R!V8W-L7W-C86QE+F\@=F-S;%]T<F%N M<VQA=&EO;BYO('9C<VQ?<F]T871I;VXN;R!V8W-L7V1I<W!L86-E;65N="YO M('9C<VQ?8WEL:6YD<FEC86Q?=&]?8V%R=&5S:6%N7S-D+F\@=F-S;%]P97)S M<&5C=&EV92YO('9C<VQ?;6%T<FEX+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P M='(K=F-S;%]A;F=L92TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L M7W-P871I86Q?=')A;G-F;W)M871I;VXM+F\@5&5M<&QA=&5S+W9B;%]S;6%R M=%]P='(K=F-S;%]A;F=L95]U;FET+2YO(%1E;7!L871E<R]V8FQ?<VUA<G1? M<'1R*W9C<VQ?87AI<RTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L M7V-A<G1E<VEA;BTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7V-A M<G1E<VEA;E\R9"TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7V-A M<G1E<VEA;E\S9"TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7V-O M;7!O<VET:6]N+2YO(%1E;7!L871E<R]V8FQ?<VUA<G1?<'1R*W9C<VQ?8V]O M<F1I;F%T95]S>7-T96TM+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S M;%]C>6QI;F1R:6-A;"TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L M7V1E9W)E92TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7V-Y;&EN M9')I8V%L7W1O7V-A<G1E<VEA;E\S9"TN;R!496UP;&%T97,O=F)L7W-M87)T M7W!T<BMV8W-L7V1I;65N<VEO;BTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T M<BMV8W-L7V1I<W!L86-E;65N="TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T M<BMV8W-L7V=E;V-E;G1R:6,M+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K M=F-S;%]G96]D971I8RTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L M7V=E;V=R87!H:6,M+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S;%]G M<F%P:"TN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7VQA;6)E<G1I M86XM+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S;%]L96YG=&@M+F\@ M5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S;%]L96YG=&A?=6YI="TN;R!4 M96UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7VUA=')I>"TN;R!496UP;&%T M97,O=F)L7W-M87)T7W!T<BMV8W-L7VUA=')I>%]P87)A;2TN;R!496UP;&%T M97,O=F)L7W-M87)T7W!T<BMV8W-L7VUE=&5R+2YO(%1E;7!L871E<R]V8FQ? M<VUA<G1?<'1R*W9C<VQ?<&5R<W!E8W1I=F4M+F\@5&5M<&QA=&5S+W9B;%]S M;6%R=%]P='(K=F-S;%]P;VQA<BTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T M<BMV8W-L7W)A9&EA;BTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L M7W)O=&%T:6]N+2YO(%1E;7!L871E<R]V8FQ?<VUA<G1?<'1R*W9C<VQ?<V-A M;&4M+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S;%]S<&%T:6%L+2YO M(%1E;7!L871E<R]V8VQ?=F5C=&]R*W9C<VQ?<W!A=&EA;%]T<F%N<V9O<FUA M=&EO;E]S<'1R+2YO(%1E;7!L871E<R]V8FQ?<VUA<G1?<'1R*W9C<VQ?<W!H M97)I8V%L+2YO(%1E;7!L871E<R]V8FQ?<VUA<G1?<'1R*W9C<VQ?<W!H97)O M:60M+F\@5&5M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S;%]T<F%N<VQA=&EO M;BTN;R!496UP;&%T97,O=F)L7W-M87)T7W!T<BMV8W-L7W5N:70M+F\@5&5M M<&QA=&5S+W9B;%]S;6%R=%]P='(K=F-S;%]U=&TM+F\@5&5M<&QA=&5S+W9C M;%]V96-T;W(K=F-S;%]A>&ES7W-P='(M+F\@5&5M<&QA=&5S+W9C;%]V96-T M;W(K=F-S;%]I;G1E<G!O;&%T;W(M+F\@5&5M<&QA=&5S+W9C;%]V96-T;W(K M=F-S;%]M871R:7A?<&%R86U?<W!T<BTN;R!496UP;&%T97,O=F-L7W9E8W1O M<BMV8W-L7W-P871I86Q?<W!T<BTN;R`@(`T*+W5S<B]B:6XO<F%N;&EB("]H M;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,O;&EB+VQI8G9C<VPN M82`-"FEF('1E<W0@(2`M9"`O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B M;&1?:6-C+V-O<F4O=F-S;"]E>&%M<&QE<SL@=&AE;B!M86ME(')E8G5I;&1? M8V%C:&4[(&9I#0IE8VAO("]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L M9%]I8V,O8V]R92]V8W-L+V5X86UP;&5S.B!B=6EL9&EN9R!D969A=6QT7W1A M<F=E=`T*8V0@+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]C M;W)E+W9C<VPO97AA;7!L97,[(&UA:V4@9&5F875L=%]T87)G970-"FUA:V4@ M(&-M86ME+F1E<&5N9',-"FUA:V4@(&-M86ME+F-H96-K7V1E<&5N9',-"FUA M:V4@("UF(&-M86ME+F-H96-K7V1E<&5N9',-"FUA:V4@("UF(&-M86ME+F-H M96-K7V1E<&5N9',@86QL#0IM86ME("`M9B!C;6%K92YC:&5C:U]D97!E;F1S M(&-M86ME+F1E<&5N9',-"FUA:V4@(&%L;`T*96-H;R`B0G5I;&1I;F<@97AE M8W5T86)L92!V8W-L7V5X86UP;&4Q+BXN(@T*:6-C("`@("`M=R`M3S`@+6<@ M+69024,@(&5X86UP;&4Q+F\@("`@+6\@=F-S;%]E>&%M<&QE,2`M<F1Y;F%M M:6,@+4PO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+VQI8B`M M;'9C<VP@+6QV;FP@+6QV8FP@+6QV8VP@+6QM("U7;"PM<G!A=&@L+VAO;64O M=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]L:6(@#0IE8VAO(")"=6EL M9&EN9R!E>&5C=71A8FQE('9C<VQ?='5T;W(N+BXB#0II8V,@("`@("UW("U/ M,"`M9R`M9E!)0R`@=F-S;%]T=71O<BYO("`@("UO('9C<VQ?='5T;W(@+7)D M>6YA;6EC("U,+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]L M:6(@+6QV8W-L("UL=FYL("UL=F)L("UL=F-L("UL;2`M5VPL+7)P871H+"]H M;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,O;&EB(`T*:68@=&5S M="`A("UD("]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,O8V]R M92]V8W-L+W1E<W1S.R!T:&5N(&UA:V4@<F5B=6EL9%]C86-H93L@9FD-"F5C M:&\@+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]C;W)E+W9C M<VPO=&5S=',Z(&)U:6QD:6YG(&1E9F%U;'1?=&%R9V5T#0IC9"`O:&]M92]W M:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O<F4O=F-S;"]T97-T<SL@ M;6%K92!D969A=6QT7W1A<F=E=`T*;6%K92`@8VUA:V4N9&5P96YD<PT*;6%K M92`@8VUA:V4N8VAE8VM?9&5P96YD<PT*;6%K92`@+68@8VUA:V4N8VAE8VM? M9&5P96YD<PT*;6%K92`@+68@8VUA:V4N8VAE8VM?9&5P96YD<R!A;&P-"FUA M:V4@("UF(&-M86ME+F-H96-K7V1E<&5N9',@8VUA:V4N9&5P96YD<PT*;6%K M92`@9&5P96YD;&]C86P-"F5C:&\@(D)U:6QD:6YG(&1E<&5N9&5N8VEE<R!D M97!E;F1L;V-A;"XN+B(-"B]H;VUE+W=H965L97(O=V]R:U]V>&PO8VUA:V5? M=7-R7VEC8R]B:6XO8VUA:V4@+5,O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X M;%]S<F,O8V]R92]V8W-L+W1E<W1S("U/+VAO;64O=VAE96QE<B]W;W)K7W9X M;"]V>&Q?8FQD7VEC8R]C;W)E+W9C<VPO=&5S=',@+4@O:&]M92]W:&5E;&5R M+W=O<FM?=GAL+W9X;%]S<F,@+4(O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X M;%]B;&1?:6-C#0IM86ME("!D97!E;F1L;V-A;`T*96-H;R`B0G5I;&1I;F<@ M9&5P96YD96YC:65S(&1E<&5N9&QO8V%L+BXN(@T*+VAO;64O=VAE96QE<B]W M;W)K7W9X;"]C;6%K95]U<W)?:6-C+V)I;B]C;6%K92`M4R]H;VUE+W=H965L M97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',@+4\O:&]M92]W M:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O<F4O=F-S;"]T97-T<R`M M2"]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R`M0B]H;VUE+W=H965L M97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,-"FUA:V4@(&1E<&5N9&QO8V%L#0IE M8VAO(")"=6EL9&EN9R!D97!E;F1E;F-I97,@9&5P96YD;&]C86PN+BXB#0HO M:&]M92]W:&5E;&5R+W=O<FM?=GAL+V-M86ME7W5S<E]I8V,O8FEN+V-M86ME M("U3+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4O=F-S;"]T M97-T<R`M3R]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,O8V]R M92]V8W-L+W1E<W1S("U(+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C M("U"+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8PT*;6%K92`@ M9&5P96YD;&]C86P-"F5C:&\@(D)U:6QD:6YG(&1E<&5N9&5N8VEE<R!D97!E M;F1L;V-A;"XN+B(-"B]H;VUE+W=H965L97(O=V]R:U]V>&PO8VUA:V5?=7-R M7VEC8R]B:6XO8VUA:V4@+5,O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S M<F,O8V]R92]V8W-L+W1E<W1S("U/+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V M>&Q?8FQD7VEC8R]C;W)E+W9C<VPO=&5S=',@+4@O:&]M92]W:&5E;&5R+W=O M<FM?=GAL+W9X;%]S<F,@+4(O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B M;&1?:6-C#0IM86ME("!A;&P-"F5C:&\@(D)U:6QD:6YG(&]B:F5C="!F:6QE M('1E<W1?8V%R=&5S:6%N7S)D+F\N+BXB#0II8V,@+6\@=&5S=%]C87)T97-I M86Y?,F0N;R`@+7<@+4\P("UG("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V M>&Q?<W)C+V-O<F4O=F-S;"]T97-T<R`M22]H;VUE+W=H965L97(O=V]R:U]V M>&PO=GAL7V)L9%]I8V,O=F-L("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V M>&Q?8FQD7VEC8R]C;W)E("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q? M<W)C+W9C;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E M("`@+4166$Q?5T%23E]$15!214-!5$5$("U$5EA,7U=!4DY?1$504D5#051% M1%]/3D-%("`M8R`O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R M92]V8W-L+W1E<W1S+W1E<W1?8V%R=&5S:6%N7S)D+F-X>`T*96-H;R`B0G5I M;&1I;F<@;V)J96-T(&9I;&4@=&5S=%]C87)T97-I86Y?,V0N;RXN+B(-"FEC M8R`M;R!T97-T7V-A<G1E<VEA;E\S9"YO("`M=R`M3S`@+6<@+4DO:&]M92]W M:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92]V8W-L+W1E<W1S("U)+VAO M;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]V8VP@+4DO:&]M92]W M:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O<F4@+4DO:&]M92]W:&5E M;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L("U)+VAO;64O=VAE96QE<B]W;W)K M7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%983%]705).7T1%4%)%0T%4140@+416 M6$Q?5T%23E]$15!214-!5$5$7T].0T4@("UC("]H;VUE+W=H965L97(O=V]R M:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',O=&5S=%]C87)T97-I86Y? M,V0N8WAX#0IE8VAO(")"=6EL9&EN9R!O8FIE8W0@9FEL92!T97-T7W!O;&%R M+F\N+BXB#0II8V,@+6\@=&5S=%]P;VQA<BYO("`M=R`M3S`@+6<@+4DO:&]M M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92]V8W-L+W1E<W1S("U) M+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]V8VP@+4DO:&]M M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O<F4@+4DO:&]M92]W M:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L("U)+VAO;64O=VAE96QE<B]W M;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%983%]705).7T1%4%)%0T%4140@ M+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@("UC("]H;VUE+W=H965L97(O M=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',O=&5S=%]P;VQA<BYC M>'@-"F5C:&\@(D)U:6QD:6YG(&]B:F5C="!F:6QE('1E<W1?8WEL:6YD<FEC M86PN;RXN+B(-"FEC8R`M;R!T97-T7V-Y;&EN9')I8V%L+F\@("UW("U/,"`M M9R`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO M=&5S=',@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+W9C M;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,O8V]R92`M M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]V8VP@+4DO:&]M92]W M:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92`@("U$5EA,7U=!4DY?1$50 M4D5#051%1"`M1%983%]705).7T1%4%)%0T%4141?3TY#12`@+6,@+VAO;64O M=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4O=F-S;"]T97-T<R]T97-T M7V-Y;&EN9')I8V%L+F-X>`T*96-H;R`B0G5I;&1I;F<@;V)J96-T(&9I;&4@ M=&5S=%]S<&AE<FEC86PN;RXN+B(-"FEC8R`M;R!T97-T7W-P:&5R:6-A;"YO M("`M=R`M3S`@+6<@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O M8V]R92]V8W-L+W1E<W1S("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q? M8FQD7VEC8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1? M:6-C+V-O<F4@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L M("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%98 M3%]705).7T1%4%)%0T%4140@+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@ M("UC("]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO M=&5S=',O=&5S=%]S<&AE<FEC86PN8WAX#0IE8VAO(")"=6EL9&EN9R!O8FIE M8W0@9FEL92!T97-T7W1R86YS9F]R;6%T:6]N7V=R87!H+F\N+BXB#0II8V,@ M+6\@=&5S=%]T<F%N<V9O<FUA=&EO;E]G<F%P:"YO("`M=R`M3S`@+6<@+4DO M:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92]V8W-L+W1E<W1S M("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]V8VP@+4DO M:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O<F4@+4DO:&]M M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L("U)+VAO;64O=VAE96QE M<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%983%]705).7T1%4%)%0T%4 M140@+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@("UC("]H;VUE+W=H965L M97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',O=&5S=%]T<F%N M<V9O<FUA=&EO;E]G<F%P:"YC>'@-"F5C:&\@(D)U:6QD:6YG(&]B:F5C="!F M:6QE('1E<W1?8V]M<&]S:71I;VXN;RXN+B(-"FEC8R`M;R!T97-T7V-O;7!O M<VET:6]N+F\@("UW("U/,"`M9R`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO M=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',@+4DO:&]M92]W:&5E;&5R+W=O<FM? M=GAL+W9X;%]B;&1?:6-C+W9C;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO M=GAL7V)L9%]I8V,O8V]R92`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL M7W-R8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R M92`@("U$5EA,7U=!4DY?1$504D5#051%1"`M1%983%]705).7T1%4%)%0T%4 M141?3TY#12`@+6,@+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O M<F4O=F-S;"]T97-T<R]T97-T7V-O;7!O<VET:6]N+F-X>`T*96-H;R`B0G5I M;&1I;F<@;V)J96-T(&9I;&4@=&5S=%]S8V%L92YO+BXN(@T*:6-C("UO('1E M<W1?<V-A;&4N;R`@+7<@+4\P("UG("U)+VAO;64O=VAE96QE<B]W;W)K7W9X M;"]V>&Q?<W)C+V-O<F4O=F-S;"]T97-T<R`M22]H;VUE+W=H965L97(O=V]R M:U]V>&PO=GAL7V)L9%]I8V,O=F-L("U)+VAO;64O=VAE96QE<B]W;W)K7W9X M;"]V>&Q?8FQD7VEC8R]C;W)E("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V M>&Q?<W)C+W9C;"`M22]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C M;W)E("`@+4166$Q?5T%23E]$15!214-!5$5$("U$5EA,7U=!4DY?1$504D5# M051%1%]/3D-%("`M8R`O:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O M8V]R92]V8W-L+W1E<W1S+W1E<W1?<V-A;&4N8WAX#0IE8VAO(")"=6EL9&EN M9R!O8FIE8W0@9FEL92!T97-T7W1R86YS;&%T:6]N+F\N+BXB#0II8V,@+6\@ M=&5S=%]T<F%N<VQA=&EO;BYO("`M=R`M3S`@+6<@+4DO:&]M92]W:&5E;&5R M+W=O<FM?=GAL+W9X;%]S<F,O8V]R92]V8W-L+W1E<W1S("U)+VAO;64O=VAE M96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC8R]V8VP@+4DO:&]M92]W:&5E;&5R M+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O<F4@+4DO:&]M92]W:&5E;&5R+W=O M<FM?=GAL+W9X;%]S<F,O=F-L("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V M>&Q?<W)C+V-O<F4@("`M1%983%]705).7T1%4%)%0T%4140@+4166$Q?5T%2 M3E]$15!214-!5$5$7T].0T4@("UC("]H;VUE+W=H965L97(O=V]R:U]V>&PO M=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',O=&5S=%]T<F%N<VQA=&EO;BYC>'@- M"F5C:&\@(D)U:6QD:6YG(&]B:F5C="!F:6QE('1E<W1?<F]T871I;VXN;RXN M+B(-"FEC8R`M;R!T97-T7W)O=&%T:6]N+F\@("UW("U/,"`M9R`M22]H;VUE M+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',@+4DO M:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+W9C;"`M22]H;VUE M+W=H965L97(O=V]R:U]V>&PO=GAL7V)L9%]I8V,O8V]R92`M22]H;VUE+W=H M965L97(O=V]R:U]V>&PO=GAL7W-R8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O M<FM?=GAL+W9X;%]S<F,O8V]R92`@("U$5EA,7U=!4DY?1$504D5#051%1"`M M1%983%]705).7T1%4%)%0T%4141?3TY#12`@+6,@+VAO;64O=VAE96QE<B]W M;W)K7W9X;"]V>&Q?<W)C+V-O<F4O=F-S;"]T97-T<R]T97-T7W)O=&%T:6]N M+F-X>`T*96-H;R`B0G5I;&1I;F<@;V)J96-T(&9I;&4@=&5S=%]D:7-P;&%C M96UE;G0N;RXN+B(-"FEC8R`M;R!T97-T7V1I<W!L86-E;65N="YO("`M=R`M M3S`@+6<@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R92]V M8W-L+W1E<W1S("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD7VEC M8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C+V-O M<F4@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L("U)+VAO M;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%983%]705). M7T1%4%)%0T%4140@+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@("UC("]H M;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S=',O M=&5S=%]D:7-P;&%C96UE;G0N8WAX#0IE8VAO(")"=6EL9&EN9R!E>&5C=71A M8FQE('9C<VQ?=&5S=%]A;&PN+BXB#0II8V,@("`@("UW("U/,"`M9R`M9E!) M0R`@=&5S=%]D<FEV97(N;R!T97-T7VUE=&5R+F\@=&5S=%]R861I86XN;R!T M97-T7V1E9W)E92YO('1E<W1?8V%R=&5S:6%N7S)D+F\@=&5S=%]C87)T97-I M86Y?,V0N;R!T97-T7W!O;&%R+F\@=&5S=%]C>6QI;F1R:6-A;"YO('1E<W1? M<W!H97)I8V%L+F\@=&5S=%]T<F%N<V9O<FUA=&EO;E]G<F%P:"YO('1E<W1? M8V]M<&]S:71I;VXN;R!T97-T7W-C86QE+F\@=&5S=%]T<F%N<VQA=&EO;BYO M('1E<W1?<F]T871I;VXN;R!T97-T7V1I<W!L86-E;65N="YO("`@("UO('9C M<VQ?=&5S=%]A;&P@+7)D>6YA;6EC("U,+VAO;64O=VAE96QE<B]W;W)K7W9X M;"]V>&Q?8FQD7VEC8R]L:6(@+6QV8W-L("UL=FYL("UL=&5S=&QI8B`M;'9B M;"`M;'9C;"`M;&T@+5=L+"UR<&%T:"PO:&]M92]W:&5E;&5R+W=O<FM?=GAL M+W9X;%]B;&1?:6-C+VQI8B`-"F5C:&\@(D)U:6QD:6YG(&]B:F5C="!F:6QE M('1E<W1?:6YC;'5D92YO+BXN(@T*:6-C("UO('1E<W1?:6YC;'5D92YO("`M M=R`M3S`@+6<@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O8V]R M92]V8W-L+W1E<W1S("U)+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?8FQD M7VEC8R]V8VP@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C M+V-O<F4@+4DO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]S<F,O=F-L("U) M+VAO;64O=VAE96QE<B]W;W)K7W9X;"]V>&Q?<W)C+V-O<F4@("`M1%983%]7 M05).7T1%4%)%0T%4140@+4166$Q?5T%23E]$15!214-!5$5$7T].0T4@("UC M("]H;VUE+W=H965L97(O=V]R:U]V>&PO=GAL7W-R8R]C;W)E+W9C<VPO=&5S M=',O=&5S=%]I;F-L=61E+F-X>`T*96-H;R`B0G5I;&1I;F<@97AE8W5T86)L M92!V8W-L7W1E<W1?:6YC;'5D92XN+B(-"FEC8R`@("`@+7<@+4\P("UG("UF M4$E#("!T97-T7VEN8VQU9&4N;R`@("`M;R!V8W-L7W1E<W1?:6YC;'5D92`M M<F1Y;F%M:6,@+4PO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B;&1?:6-C M+VQI8B`M;'9C<VP@+6QV;FP@+6QT97-T;&EB("UL=F-S;"`M;'9B;"`M;'9C M;"`M;&T@+5=L+"UR<&%T:"PO:&]M92]W:&5E;&5R+W=O<FM?=GAL+W9X;%]B -;&1?:6-C+VQI8B`-"@== ` end |
From: Wheeler, F. W (Research) <wh...@cr...> - 2003-03-04 13:24:44
|
Ian, Thanks for pointing out the BUILD_VCSL option. I hadn't noticed that before. Let me know if there is anything else you did for icc. I will also grep the whole tree for "icc". I'm glad to hear that you got (most of) VXL compiled with icc. Now that you mention it, I recall your post some months ago with icc/gcc results. I was worried I'd face a lot of problems like this vcsl one, but I guess you've already taken care of the port. As soon as I get this working I'll make an icc dashboard build. I'm not so concerned with how fast vxl programs run using icc -- gcc will still be my main compiler. I'm more interested in having yet another compiler on the dashboard. If VXL builds with a lot of compilers the whole thing will be that much more robust. I've heard that icc can issue warnings that gcc misses. Regards, Fred Wheeler > -----Original Message----- > From: Ian...@st... [mailto:Ian...@st...] > Sent: Tuesday, March 04, 2003 4:51 AM > To: Wheeler, Frederick W (Research) > Cc: vxl...@li... > Subject: RE: [Vxl-maintainers] vcsl missing symbol with ICC > > > I had the same problem when I tried to compile VXL using ICC. > My temporary solution was to stop > build vcsl. I believe I left an option in the root > CMakeLists.txt to do just that. Slightly more > usefully my experiments suggestsed that it was not worth > using icc over gcc. Test in vnl and vil2 > compiled with icc were by no means consistently better, and > frequently 2 or 3 times slower than the > same code compiled with gcc 3.2. (All optimisation settings > on) There appearsed to be no simple > pattern for the relative speeds. The same code would > sometimes be 50% slower, using gcc with certain > parameters, and 50% faster using gcc with different parameters. > > regards, > Ian. > > > > -----Original Message----- > > From: Wheeler, Frederick W (Research) [mailto:wh...@cr...] > > Sent: Tuesday, March 04, 2003 12:05 AM > > To: VXL Maintainers List (E-mail) > > Subject: [Vxl-maintainers] vcsl missing symbol with ICC > > > > > > I'm trying to get VXL to compile under ICC (Intel C++ > > compiler). CMake knows how to use this > > compiler, so a vanilla static build goes pretty smoothly, > > until it comes time to link with vcsl.a. > > I'm getting the following undefined symbol error. > > > > > > Building executable vcsl_example1... > > /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a(vcsl_cartesia > > n_3d.o): In function > > `vcsl_cartesian_3d': > > /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx > > :16: undefined reference to > > `vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatia > > l> const&, double, > > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > > >&, std::vector<bool, > > std::allocator<bool> >&)' > > /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx > > :16: undefined reference to > > `vcsl_spatial::recursive_path_from_local_to_cs(vbl_smart_ptr<v > > csl_spatial> const&, double, > > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > > >&, std::vector<bool, > > std::allocator<bool> >&)' > > > > > > If anybody familiar with vcsl knows about anything funny with > > this class/method that might be an > > issue here, please let me know. Also, general tips on > > debugging missing symbols would be > > appreciated. > > > > I can't figure out why this symbol is reported missing. nm > > tells me that this exact symbol is > > defined in vcsl_spatial.o, and is defined in vcsl.a. vcsl.a > > also lists the symbol as undefined, I > > guess because it is needed by other code that is in that > > library. example1.o does not directly use > > this symbol, so if it is required, that requirement must be > > because it is (both defined and) > > undefined in vcsl.a. > > > > I've been VERY careful to make sure it is in fact the exact > > same symbol name that is defined in > > vcsl_spatial.o and in vcsl.a and also undefined in vcsl.a. > > The demangled names are precisely the > > same. The non-demangled names have slight differences at the > > end, but this difference is consistent > > with other stuff in the library, for which an error is not reported. > > > > > > Here is the slight difference in symbol names without demangling. > > > > > > % nm -g ~/work_vxl/vxl_bld_icc/lib/libvcsl.a | grep > > 'path_from_local_to_cs' | grep -v > > path_from_local_to_cs_exists|grep -v recursive_path_from_local_to_cs > > 00001650 T > > _ZN12vcsl_spatial21path_from_local_to_csERK13vbl_smart_ptrIS_E > > dRSt6vectorIS0_I27vcsl_spatial_transfor > > mationESaIS6_EERSt6vectorIbSaIbEE > > U > > _ZN12vcsl_spatial21path_from_local_to_csERK13vbl_smart_ptrIS_E > > dRSt6vectorIS0_I27vcsl_spatial_transfor > > mationESaIS6_EERS4_IbSaIbEE > > ... > > > > Here are the identical symbol names with demangling. > > > > > > % nm -gC ~/work_vxl/vxl_bld_icc/lib/libvcsl.a | grep > > 'path_from_local_to_cs' | grep -v > > path_from_local_to_cs_exists|grep -v recursive_path_from_local_to_cs > > 00001650 T > > vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial > > > const&, double, > > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > > >&, std::vector<bool, > > std::allocator<bool> >&) > > U > > vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial > > > const&, double, > > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > > >&, std::vector<bool, > > std::allocator<bool> >&) > > ... > > > > For completeness, here is how I prepopulate the CMake cache. > > > > > > CMAKE_C_COMPILER:FILEPATH=icc > > CMAKE_CXX_COMPILER:FILEPATH=icc > > CMAKE_C_FLAGS:STRING=-w -O0 -g > > CMAKE_CXX_FLAGS:STRING=-w -O0 -g > > BUILD_SHARED_LIBS:BOOL=OFF > > BUILD_VGUI:BOOL=ON > > VXL_FORCE_V3P_ZLIB:BOOL=YES > > VXL_FORCE_V3P_PNG:BOOL=YES > > VXL_FORCE_V3P_JPEG:BOOL=YES > > VXL_FORCE_V3P_MPEG2:BOOL=YES > > VXL_FORCE_V3P_TIFF:BOOL=YES > > > > > > Here is some version info on the icc compiler. It mostly > > mimics gcc command-line options. > > > > > > % icc -V > > Intel(R) C++ Compiler for 32-bit applications, Version 7.0 > > Build 20021021Z > > Copyright (C) 1985-2002 Intel Corporation. All rights reserved. > > > > GNU ld version 2.10.91 (with BFD 2.10.91.0.2) > > Supported emulations: > > elf_i386 > > i386linux > > elf_i386_glibc21 > > > > > > Baffled ... > > Fred Wheeler > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Etnus, makers of > > TotalView, The debugger > > for complex code. Debugging C/C++ programs can leave you > > feeling lost and > > disoriented. TotalView can help you find your way. Available > > on major UNIX > > and Linux platforms. Try it free. www.etnus.com > > _______________________________________________ > > Vxl-maintainers mailing list > > Vxl...@li... > > https://lists.sourceforge.net/lists/listinfo/vxl-maintainers > > > |
From: Wheeler, F. W (Research) <wh...@cr...> - 2003-03-04 15:18:45
|
One of the places that the linker claims to reference this "missing" symbol is vcsl_cartesian_3d.cxx:16, as seen in this error message, /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx:16: undefined reference to `vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial> const&, double, std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > >&, std::vector<bool, std::allocator<bool> >&)' Line 16 of vcsl_cartesian_3d.cxx is shown here, 13 vcsl_cartesian_3d::vcsl_cartesian_3d(void) 14 { 15 vcsl_axis_sptr a; 16 a=new vcsl_axis; 17 axes_.push_back(a); 18 a=new vcsl_axis(*(a.ptr())); 19 axes_.push_back(a); 20 a=new vcsl_axis(*(a.ptr())); 21 axes_.push_back(a); 22 right_handed_=true; 23 } This symbol is "undefined" in 10 places in 10 different files. Most, and perhaps all, are very similar to this one. The vcsl_axis class seems to me to be isolated from the vcsl_spatial class and all of the classes derived from vcsl_spatial. So, I don't see how this line of code would trigger a need for a vcsl_spatial method. Let me know if this triggers any ideas with anyone. Please send even half baked ideas. Soon I will just resort to skipping the compilation of vcsl. Still baffled ... Fred Wheeler > -----Original Message----- > From: Wheeler, Frederick W (Research) > Sent: Monday, March 03, 2003 7:05 PM > To: VXL Maintainers List (E-mail) > Subject: [Vxl-maintainers] vcsl missing symbol with ICC > > > I'm trying to get VXL to compile under ICC (Intel C++ > compiler). CMake knows how to use this > compiler, so a vanilla static build goes pretty smoothly, > until it comes time to link with vcsl.a. > I'm getting the following undefined symbol error. > > > Building executable vcsl_example1... > /home/wheeler/work_vxl/vxl_bld_icc/lib/libvcsl.a(vcsl_cartesia > n_3d.o): In function > `vcsl_cartesian_3d': > /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx > :16: undefined reference to > `vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatia > l> const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&)' > /home/wheeler/work_vxl/vxl_src/core/vcsl/vcsl_cartesian_3d.cxx > :16: undefined reference to > `vcsl_spatial::recursive_path_from_local_to_cs(vbl_smart_ptr<v > csl_spatial> const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&)' > > > If anybody familiar with vcsl knows about anything funny with > this class/method that might be an > issue here, please let me know. Also, general tips on > debugging missing symbols would be > appreciated. > > I can't figure out why this symbol is reported missing. nm > tells me that this exact symbol is > defined in vcsl_spatial.o, and is defined in vcsl.a. vcsl.a > also lists the symbol as undefined, I > guess because it is needed by other code that is in that > library. example1.o does not directly use > this symbol, so if it is required, that requirement must be > because it is (both defined and) > undefined in vcsl.a. > > I've been VERY careful to make sure it is in fact the exact > same symbol name that is defined in > vcsl_spatial.o and in vcsl.a and also undefined in vcsl.a. > The demangled names are precisely the > same. The non-demangled names have slight differences at the > end, but this difference is consistent > with other stuff in the library, for which an error is not reported. > > > Here is the slight difference in symbol names without demangling. > > > % nm -g ~/work_vxl/vxl_bld_icc/lib/libvcsl.a | grep > 'path_from_local_to_cs' | grep -v > path_from_local_to_cs_exists|grep -v recursive_path_from_local_to_cs > 00001650 T > _ZN12vcsl_spatial21path_from_local_to_csERK13vbl_smart_ptrIS_E > dRSt6vectorIS0_I27vcsl_spatial_transfor > mationESaIS6_EERSt6vectorIbSaIbEE > U > _ZN12vcsl_spatial21path_from_local_to_csERK13vbl_smart_ptrIS_E > dRSt6vectorIS0_I27vcsl_spatial_transfor > mationESaIS6_EERS4_IbSaIbEE > ... > > Here are the identical symbol names with demangling. > > > % nm -gC ~/work_vxl/vxl_bld_icc/lib/libvcsl.a | grep > 'path_from_local_to_cs' | grep -v > path_from_local_to_cs_exists|grep -v recursive_path_from_local_to_cs > 00001650 T > vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial > > const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&) > U > vcsl_spatial::path_from_local_to_cs(vbl_smart_ptr<vcsl_spatial > > const&, double, > std::vector<vbl_smart_ptr<vcsl_spatial_transformation>, > std::allocator<vbl_smart_ptr<vcsl_spatial_transformation> > > >&, std::vector<bool, > std::allocator<bool> >&) > ... > > For completeness, here is how I prepopulate the CMake cache. > > > CMAKE_C_COMPILER:FILEPATH=icc > CMAKE_CXX_COMPILER:FILEPATH=icc > CMAKE_C_FLAGS:STRING=-w -O0 -g > CMAKE_CXX_FLAGS:STRING=-w -O0 -g > BUILD_SHARED_LIBS:BOOL=OFF > BUILD_VGUI:BOOL=ON > VXL_FORCE_V3P_ZLIB:BOOL=YES > VXL_FORCE_V3P_PNG:BOOL=YES > VXL_FORCE_V3P_JPEG:BOOL=YES > VXL_FORCE_V3P_MPEG2:BOOL=YES > VXL_FORCE_V3P_TIFF:BOOL=YES > > > Here is some version info on the icc compiler. It mostly > mimics gcc command-line options. > > > % icc -V > Intel(R) C++ Compiler for 32-bit applications, Version 7.0 > Build 20021021Z > Copyright (C) 1985-2002 Intel Corporation. All rights reserved. > > GNU ld version 2.10.91 (with BFD 2.10.91.0.2) > Supported emulations: > elf_i386 > i386linux > elf_i386_glibc21 > > > Baffled ... > Fred Wheeler > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of > TotalView, The debugger > for complex code. Debugging C/C++ programs can leave you > feeling lost and > disoriented. TotalView can help you find your way. Available > on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Vxl-maintainers mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-maintainers > |
From: Wheeler, F. W (Research) <wh...@cr...> - 2003-03-04 19:42:58
|
I have found a fix for the VCSL/ICC link problem. If I substitute <int> for <bool> everywhere it appears in vcsl (6 places, diff below) everything compiles/links and tests perfectly. In fact, now all VXL/core tests pass. The definition of variables with type vcl_vector<bool> did not in itself cause a problem. The problem happens only when you use something like ::push_back() or even ::iterator on something of type vcl_vector<bool>. In the end I had to figure this out with the old delete some code->compile->repeat until it works method. I'm not going to check in the bool->int change right yet. I suspect this is really a VCL problem. I'm hoping that someone else will see that and have some idea what could be going wrong in vcl. Thanks to Andrew, Ian and Luis for all the help. Regards, Fred % cvs diff cvs server: Diffing . Index: vcsl_spatial.cxx =================================================================== RCS file: /cvsroot/vxl/vxl/core/vcsl/vcsl_spatial.cxx,v retrieving revision 1.14 diff -r1.14 vcsl_spatial.cxx 208c208 < vcl_vector<bool> &sens) --- > vcl_vector<int> &sens) 229c229 < vcl_vector<bool> &sens) --- > vcl_vector<int> &sens) 338c338 < vcl_vector<bool> sens; --- > vcl_vector<int> sens; 341c341 < vcl_vector<bool>::const_iterator j; --- > vcl_vector<int>::const_iterator j; Index: vcsl_spatial.h =================================================================== RCS file: /cvsroot/vxl/vxl/core/vcsl/vcsl_spatial.h,v retrieving revision 1.12 diff -r1.12 vcsl_spatial.h 157c157 < vcl_vector<bool> &sens); --- > vcl_vector<int> &sens); 165c165 < vcl_vector<bool> &sens); --- > vcl_vector<int> &sens); cvs server: Diffing Templates cvs server: Diffing examples cvs server: Diffing tests |
From: Wheeler, F. W (Research) <wh...@cr...> - 2003-03-05 20:03:06
|
Andrew Fitzgibbon wrote: > Fred Wheeler wrote: > > I'm not going to check in the bool->int change right yet. I > > suspect this is really a VCL problem. > > I'm hoping that someone else will see that and have some idea > > what could be going wrong in vcl. > > I suspect forward declaration of vector<T> maybe? The compiler > is allowed to have a specialization of vector<bool>, and I guess > it should live in <vector>. I'm not sure what this forward declaration issue might be, but I'm happy to try anything anyone specifically suggests. When I was trying to diagnose the problem, one of the things I tried was to give the two files in question identical #includes. That was no help. I have a hunch that point might be relevant to the suggestion that forward declarations could be an issue. When I saw the following on the web I was hopeful that this was a known fixed problem and the fix would show up in the next release. Fixes in the build of August 26,2002 Q143482, Q141518 Error with the vector<bool> specialization Q142106 internal error: 0_1451 due to optimize routine However, I see this same note in with the docs that came with our current version of the compiler (comp_intel/7.0/compiler70/docs/notes/icc_issues.txt) so I guess this is not the problem. Darn. > Can you get a minimal pair of files which produce different > mangling? > It could be an icc bug as well, and Intel will need small > example files to be convinced... I may try to whittle down what's in VCSL to get a minimal example. However, I am not enthusiastic about going through a lot of trouble for Intel's sake. They make it very difficult to get real information about known and fixed problems with icc on their web site. Also, I think you need to jump through some registration hoops just to submit a problem report. Some nerve. I just tried both vcl_vector<bool> and std::vector<bool> in vcsl. Both give the identical link problem I originally reported. I guess vcl_ is just a pass through to STL under icc. So, it seems clear that this is an icc bug, or a *very* obscure language issue. Fred Wheeler |