Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-4669

compile error on ppc64: __ksymtab_ldiskfs_ext_pblock causes a section type conflict

Details

    • 3
    • 12789

    Description

      While compiling Lustre master branch against kernel 2.6.32-431.5.1.el6 on RHEL6.5/ppc64 by using lbuild, I hit the following errors:

      /root/lustre-release/build/BUILD/lustre-2.5.55/ldiskfs/extents.c:4832: error: __ksymtab_ldiskfs_ext_pblock causes a section type conflict
      /root/lustre-release/build/BUILD/lustre-2.5.55/ldiskfs/extents.c:4832: error: __ksymtab_ldiskfs_ext_pblock causes a section type conflict
      /root/lustre-release/build/BUILD/lustre-2.5.55/ldiskfs/extents.c:4829: error: __ksymtab_ldiskfs_ext_store_pblock causes a section type conflict
      /root/lustre-release/build/BUILD/lustre-2.5.55/ldiskfs/extents.c:4829: error: __ksymtab_ldiskfs_ext_store_pblock causes a section type conflict
      

      The lbuild log "lbuild.ppc64.log" is attached.

      Attachments

        Activity

          [LU-4669] compile error on ppc64: __ksymtab_ldiskfs_ext_pblock causes a section type conflict
          yujian Jian Yu added a comment -

          Here are the back-ported patches for Lustre b2_5 branch:
          http://review.whamcloud.com/12431 (from patch #9401)
          http://review.whamcloud.com/12432 (from patch #9811)

          The issue fixed http://review.whamcloud.com/9810 does not exist on Lustre b2_5 branch.

          yujian Jian Yu added a comment - Here are the back-ported patches for Lustre b2_5 branch: http://review.whamcloud.com/12431 (from patch #9401) http://review.whamcloud.com/12432 (from patch #9811) The issue fixed http://review.whamcloud.com/9810 does not exist on Lustre b2_5 branch.
          yujian Jian Yu added a comment -

          All of the patches in this ticket were landed on master branch.

          yujian Jian Yu added a comment - All of the patches in this ticket were landed on master branch.
          yujian Jian Yu added a comment - - edited

          Here is the patch for master branch: http://review.whamcloud.com/9401

          Patch http://review.whamcloud.com/9810 fixes the following compile errors:

          cc1: warnings being treated as errors
          /root/lustre-release/build/BUILD/lustre-2.5.55/lustre/lmv/lmv_obd.c:2329: error: 'lmv_adjust_dirpages' defined but not used
          make[6]: *** [/root/lustre-release/build/BUILD/lustre-2.5.55/lustre/lmv/lmv_obd.o] Error 1
          

          Patch http://review.whamcloud.com/9811 fixes the following compile errors:

          cc1: warnings being treated as errors
          ../../lustre/ldlm/ldlm_request.c: In function 'ldlm_cli_enqueue_fini':
          ../../lustre/ldlm/ldlm_request.c:614: error: format '%llx' expects type 'long long unsigned int', but argument 5 has type '__u64'
          ../../lustre/ldlm/ldlm_request.c: In function 'ldlm_cli_enqueue':
          ../../lustre/ldlm/ldlm_request.c:925: error: format '%llx' expects type 'long long unsigned int', but argument 4 has type '__u64'
          ../../lustre/ldlm/ldlm_request.c:925: error: format '%llx' expects type 'long long unsigned int', but argument 3 has type '__u64'
          make[4]: *** [libptlrpc_a-ldlm_request.o] Error 1
          make[4]: *** Waiting for unfinished jobs....
          cc1: warnings being treated as errors
          ../../lustre/ldlm/ldlm_flock.c: In function 'ldlm_flock_destroy':
          ../../lustre/ldlm/ldlm_flock.c:142: error: format '%llx' expects type 'long long unsigned int', but argument 5 has type '__u64'
          ../../lustre/ldlm/ldlm_flock.c:142: error: format '%llx' expects type 'long long unsigned int', but argument 4 has type '__u64'
          ../../lustre/ldlm/ldlm_flock.c: In function 'ldlm_process_flock_lock':
          ../../lustre/ldlm/ldlm_flock.c:312: error: format '%#llx' expects type 'long long unsigned int', but argument 3 has type '__u64'
          ../../lustre/ldlm/ldlm_flock.c: In function 'ldlm_flock_completion_ast':
          ../../lustre/ldlm/ldlm_flock.c:676: error: format '%llx' expects type 'long long unsigned int', but argument 3 has type '__u64'
          make[4]: *** [libptlrpc_a-ldlm_flock.o] Error 1
          
          yujian Jian Yu added a comment - - edited Here is the patch for master branch: http://review.whamcloud.com/9401 Patch http://review.whamcloud.com/9810 fixes the following compile errors: cc1: warnings being treated as errors /root/lustre-release/build/BUILD/lustre-2.5.55/lustre/lmv/lmv_obd.c:2329: error: 'lmv_adjust_dirpages' defined but not used make[6]: *** [/root/lustre-release/build/BUILD/lustre-2.5.55/lustre/lmv/lmv_obd.o] Error 1 Patch http://review.whamcloud.com/9811 fixes the following compile errors: cc1: warnings being treated as errors ../../lustre/ldlm/ldlm_request.c: In function 'ldlm_cli_enqueue_fini': ../../lustre/ldlm/ldlm_request.c:614: error: format '%llx' expects type 'long long unsigned int', but argument 5 has type '__u64' ../../lustre/ldlm/ldlm_request.c: In function 'ldlm_cli_enqueue': ../../lustre/ldlm/ldlm_request.c:925: error: format '%llx' expects type 'long long unsigned int', but argument 4 has type '__u64' ../../lustre/ldlm/ldlm_request.c:925: error: format '%llx' expects type 'long long unsigned int', but argument 3 has type '__u64' make[4]: *** [libptlrpc_a-ldlm_request.o] Error 1 make[4]: *** Waiting for unfinished jobs.... cc1: warnings being treated as errors ../../lustre/ldlm/ldlm_flock.c: In function 'ldlm_flock_destroy': ../../lustre/ldlm/ldlm_flock.c:142: error: format '%llx' expects type 'long long unsigned int', but argument 5 has type '__u64' ../../lustre/ldlm/ldlm_flock.c:142: error: format '%llx' expects type 'long long unsigned int', but argument 4 has type '__u64' ../../lustre/ldlm/ldlm_flock.c: In function 'ldlm_process_flock_lock': ../../lustre/ldlm/ldlm_flock.c:312: error: format '%#llx' expects type 'long long unsigned int', but argument 3 has type '__u64' ../../lustre/ldlm/ldlm_flock.c: In function 'ldlm_flock_completion_ast': ../../lustre/ldlm/ldlm_flock.c:676: error: format '%llx' expects type 'long long unsigned int', but argument 3 has type '__u64' make[4]: *** [libptlrpc_a-ldlm_flock.o] Error 1
          yujian Jian Yu added a comment - - edited

          Besides ldiskfs/extents.c, those exported functions are used in:

          ldiskfs/move_extent.c
          lustre/osd-ldiskfs/osd_io.c
          

          Since the functions are static inline functions, and ldiskfs/ldiskfs_extents.h is included in lustre/osd-ldiskfs/osd_io.c. I'm going to remove those EXPORT_SYMBOL(...)s from ldiskfs/kernel_patches/patches/rhel6.4/ext4-misc.patch.

          yujian Jian Yu added a comment - - edited Besides ldiskfs/extents.c, those exported functions are used in: ldiskfs/move_extent.c lustre/osd-ldiskfs/osd_io.c Since the functions are static inline functions, and ldiskfs/ldiskfs_extents.h is included in lustre/osd-ldiskfs/osd_io.c. I'm going to remove those EXPORT_SYMBOL(...)s from ldiskfs/kernel_patches/patches/rhel6.4/ext4-misc.patch.
          yujian Jian Yu added a comment - - edited

          This is because the static functions in ldiskfs/ldiskfs_extents.h are exported in ldiskfs/extents.c, which is not allowed by gcc.

          ldiskfs/ldiskfs_extents.h:

          static inline ldiskfs_fsblk_t ldiskfs_ext_pblock(struct ldiskfs_extent *ex)
          //......
          static inline void ldiskfs_ext_store_pblock(struct ldiskfs_extent *ex,
                                                   ldiskfs_fsblk_t pb)
          //......
          

          ldiskfs/extents.c:

          EXPORT_SYMBOL(ldiskfs_ext_store_pblock);
          EXPORT_SYMBOL(ldiskfs_ext_pblock);
          

          The above EXPORT_SYMBOL codes were introduced in ldiskfs/kernel_patches/patches/rhel6.4/ext4-misc.patch by patch http://review.whamcloud.com/4804.

          yujian Jian Yu added a comment - - edited This is because the static functions in ldiskfs/ldiskfs_extents.h are exported in ldiskfs/extents.c, which is not allowed by gcc. ldiskfs/ldiskfs_extents.h: static inline ldiskfs_fsblk_t ldiskfs_ext_pblock(struct ldiskfs_extent *ex) //...... static inline void ldiskfs_ext_store_pblock(struct ldiskfs_extent *ex, ldiskfs_fsblk_t pb) //...... ldiskfs/extents.c: EXPORT_SYMBOL(ldiskfs_ext_store_pblock); EXPORT_SYMBOL(ldiskfs_ext_pblock); The above EXPORT_SYMBOL codes were introduced in ldiskfs/kernel_patches/patches/rhel6.4/ext4-misc.patch by patch http://review.whamcloud.com/4804 .

          People

            yujian Jian Yu
            yujian Jian Yu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: