[LU-5046] build incorrectly requires system installed zfs headers Created: 10/May/14 Updated: 27/Aug/15 Resolved: 27/Aug/15 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.3.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Critical |
| Reporter: | Brian Murrell (Inactive) | Assignee: | WC Triage |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Severity: | 3 |
| Rank (Obsolete): | 13939 |
| Description |
|
On b2_3: Making all in utils mount_utils_zfs.c:33:27: error: libzfs/libzfs.h: No such file or directory mount_utils_zfs.c:55: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token mount_utils_zfs.c:63: error: expected specifier-qualifier-list before 'libzfs_handle_t' mount_utils_zfs.c: In function 'zfs_populate_symbols': mount_utils_zfs.c:93: error: 'struct zfs_symbols' has no member named 'libzfs_init' mount_utils_zfs.c:93: error: 'struct zfs_symbols' has no member named 'libzfs_init' cc1: warnings being treated as errors mount_utils_zfs.c:93: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:95: error: 'struct zfs_symbols' has no member named 'libzfs_fini' mount_utils_zfs.c:95: error: 'struct zfs_symbols' has no member named 'libzfs_fini' mount_utils_zfs.c:95: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:97: error: 'struct zfs_symbols' has no member named 'libzfs_load_module' mount_utils_zfs.c:97: error: 'struct zfs_symbols' has no member named 'libzfs_load_module' mount_utils_zfs.c:97: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:99: error: 'struct zfs_symbols' has no member named 'zfs_open' mount_utils_zfs.c:99: error: 'struct zfs_symbols' has no member named 'zfs_open' mount_utils_zfs.c:99: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:101: error: 'struct zfs_symbols' has no member named 'zfs_destroy' mount_utils_zfs.c:101: error: 'struct zfs_symbols' has no member named 'zfs_destroy' mount_utils_zfs.c:101: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:103: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c:103: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c:103: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:105: error: 'struct zfs_symbols' has no member named 'zfs_prop_set' mount_utils_zfs.c:105: error: 'struct zfs_symbols' has no member named 'zfs_prop_set' mount_utils_zfs.c:105: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:107: error: 'struct zfs_symbols' has no member named 'zfs_get_user_props' mount_utils_zfs.c:107: error: 'struct zfs_symbols' has no member named 'zfs_get_user_props' mount_utils_zfs.c:107: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:109: error: 'struct zfs_symbols' has no member named 'zfs_name_valid' mount_utils_zfs.c:109: error: 'struct zfs_symbols' has no member named 'zfs_name_valid' mount_utils_zfs.c:109: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:111: error: 'struct zfs_symbols' has no member named 'zpool_open' mount_utils_zfs.c:111: error: 'struct zfs_symbols' has no member named 'zpool_open' mount_utils_zfs.c:111: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:113: error: 'struct zfs_symbols' has no member named 'zpool_close' mount_utils_zfs.c:113: error: 'struct zfs_symbols' has no member named 'zpool_close' mount_utils_zfs.c:113: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:115: error: 'struct zfs_symbols' has no member named 'nvlist_lookup_string' mount_utils_zfs.c:115: error: 'struct zfs_symbols' has no member named 'nvlist_lookup_string' mount_utils_zfs.c:115: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c:117: error: 'struct zfs_symbols' has no member named 'nvlist_lookup_nvlist' mount_utils_zfs.c:117: error: 'struct zfs_symbols' has no member named 'nvlist_lookup_nvlist' mount_utils_zfs.c:117: error: type defaults to 'int' in declaration of 'type name' mount_utils_zfs.c: At top level: mount_utils_zfs.c:129: error: expected ')' before '*' token mount_utils_zfs.c:145: error: expected ')' before '*' token mount_utils_zfs.c:157: error: expected ')' before '*' token mount_utils_zfs.c: In function 'zfs_write_ldd': mount_utils_zfs.c:188: error: 'zfs_handle_t' undeclared (first use in this function) mount_utils_zfs.c:188: error: (Each undeclared identifier is reported only once mount_utils_zfs.c:188: error: for each function it appears in.) mount_utils_zfs.c:188: error: 'zhp' undeclared (first use in this function) mount_utils_zfs.c:194: error: 'struct zfs_symbols' has no member named 'zfs_open' mount_utils_zfs.c:194: error: 'g_zfs' undeclared (first use in this function) mount_utils_zfs.c:194: error: 'ZFS_TYPE_FILESYSTEM' undeclared (first use in this function) mount_utils_zfs.c:202: error: implicit declaration of function 'zfs_set_prop_int' mount_utils_zfs.c:214: error: implicit declaration of function 'zfs_set_prop_str' mount_utils_zfs.c:234: error: implicit declaration of function 'zfs_set_prop_param' mount_utils_zfs.c:252: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c: At top level: mount_utils_zfs.c:257: error: expected ')' before '*' token mount_utils_zfs.c:279: error: expected ')' before '*' token mount_utils_zfs.c:298: error: expected ')' before '*' token mount_utils_zfs.c: In function 'zfs_read_ldd': mount_utils_zfs.c:324: error: 'zfs_handle_t' undeclared (first use in this function) mount_utils_zfs.c:324: error: 'zhp' undeclared (first use in this function) mount_utils_zfs.c:330: error: 'struct zfs_symbols' has no member named 'zfs_open' mount_utils_zfs.c:330: error: 'g_zfs' undeclared (first use in this function) mount_utils_zfs.c:330: error: 'ZFS_TYPE_FILESYSTEM' undeclared (first use in this function) mount_utils_zfs.c:334: error: implicit declaration of function 'zfs_get_prop_int' mount_utils_zfs.c:346: error: implicit declaration of function 'zfs_get_prop_str' mount_utils_zfs.c:366: error: implicit declaration of function 'zfs_get_prop_param' mount_utils_zfs.c:386: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c: In function 'zfs_make_lustre': mount_utils_zfs.c:474: error: 'zfs_handle_t' undeclared (first use in this function) mount_utils_zfs.c:474: error: 'zhp' undeclared (first use in this function) mount_utils_zfs.c:475: error: 'zpool_handle_t' undeclared (first use in this function) mount_utils_zfs.c:475: error: 'php' undeclared (first use in this function) mount_utils_zfs.c:514: error: 'struct zfs_symbols' has no member named 'zfs_open' mount_utils_zfs.c:514: error: 'g_zfs' undeclared (first use in this function) mount_utils_zfs.c:514: error: 'ZFS_TYPE_FILESYSTEM' undeclared (first use in this function) mount_utils_zfs.c:516: error: 'struct zfs_symbols' has no member named 'zfs_destroy' mount_utils_zfs.c:518: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c:524: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c:533: error: 'struct zfs_symbols' has no member named 'zpool_open' mount_utils_zfs.c:536: error: 'struct zfs_symbols' has no member named 'zpool_close' mount_utils_zfs.c: In function 'zfs_prepare_lustre': mount_utils_zfs.c:609: error: 'struct zfs_symbols' has no member named 'zfs_name_valid' mount_utils_zfs.c:609: error: 'ZFS_TYPE_FILESYSTEM' undeclared (first use in this function) mount_utils_zfs.c: In function 'zfs_label_lustre': mount_utils_zfs.c:629: error: 'zfs_handle_t' undeclared (first use in this function) mount_utils_zfs.c:629: error: 'zhp' undeclared (first use in this function) mount_utils_zfs.c:635: error: 'struct zfs_symbols' has no member named 'zfs_open' mount_utils_zfs.c:635: error: 'g_zfs' undeclared (first use in this function) mount_utils_zfs.c:635: error: 'ZFS_TYPE_FILESYSTEM' undeclared (first use in this function) mount_utils_zfs.c:640: error: 'struct zfs_symbols' has no member named 'zfs_close' mount_utils_zfs.c: In function 'zfs_init': mount_utils_zfs.c:667: error: 'struct zfs_symbols' has no member named 'libzfs_load_module' mount_utils_zfs.c:673: error: 'g_zfs' undeclared (first use in this function) mount_utils_zfs.c:673: error: 'struct zfs_symbols' has no member named 'libzfs_init' mount_utils_zfs.c: In function 'zfs_fini': mount_utils_zfs.c:687: error: 'g_zfs' undeclared (first use in this function) mount_utils_zfs.c:688: error: 'struct zfs_symbols' has no member named 'libzfs_fini' make[4]: *** [mount_lustre-mount_utils_zfs.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [all-recursive] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 This is because the compilation of mount_utils_zfs.c is trying to get libzfs/libzfs.h from /usr/include rather than using the zfs-devel that was unpacked by the build, for the build and pointed to configure with: --with-zfs=/var/lib/jenkins/workspace/lustre-b2_3/arch/i686/build_type/server/distro/el6/ib_stack/inkernel/BUILD/usr/src/zfs-0.6.0-rc10/2.6.32-279.5.1.el6_lustre.i686 Using the pool of sources installed for the build is the right place to get those headers, not the system since the version installed on the system will be unknown whereas the version installed by the build for the build are absolutely known and guaranteed to match the kernel and/or libraries being used by the build which should be out of the same source pool. |
| Comments |
| Comment by Brian Murrell (Inactive) [ 10/May/14 ] |
|
Looks like this also affects the lustre-daos branch. |
| Comment by James A Simmons [ 10/May/14 ] |
|
Do you have http://review.whamcloud.com/#/c/8261 from |
| Comment by Brian Murrell (Inactive) [ 11/May/14 ] |
|
Probably not, but nice catch simmonsja. So this change probably needs porting to a few branches. Thanks much for the pointer simmonsja! |
| Comment by Alex Zhuravlev [ 11/May/14 ] |
|
try with --with-zfs-include-prefix= ? |
| Comment by James A Simmons [ 11/May/14 ] |
|
With the patch it will first try to see if ZFS headers are installed (/usr/include/...). If it doesn't find them then with will use the headers in the zfs source tree. If that doesn't work then you can use --with-zfs-devel=path_to_headers |
| Comment by James A Simmons [ 16/May/14 ] |
|
Does that patch help? |
| Comment by Brian Murrell (Inactive) [ 16/May/14 ] |
|
It looks like it should/would. I have asked the branch owners of branches that it has not yet landed on to try to get it landed. As I noted in |
| Comment by James A Simmons [ 27/Aug/15 ] |
|
Since this is for 2.3 we can close this ticket now. |
| Comment by Peter Jones [ 27/Aug/15 ] |
|
Is it no longer an issue on current master then? |
| Comment by James A Simmons [ 27/Aug/15 ] |
|
I always build against the source tree on our build box since I don't have permission to install ZFS headers there. The problem here is that the reporter didn't have patch 8261 in the 2.3 tree. Patch 8261 has landed to master long ago. |
| Comment by Peter Jones [ 27/Aug/15 ] |
|
Ah yes. So let's close it as a duplicate of |