Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-36995

vector: ifunc is not supported by musl (build 11.8.2 on Alpine Linux)

    XMLWordPrintable

Details

    • Related to install and upgrade
    • Enable the vector search to be built on Alpine/musl x86_64 and aarch64 platforms

    Description

      Building 11.8.2 on Alpine Linux gives the following error:

      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc: In static member function 'static const FVector* FVector::create(metric_type, void*, const void*, size_t)':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:299:19: error: multiversioning needs 'ifunc' which is not supported on this target
        299 |   static FVector *align_ptr(void *ptr) { return (FVector*)ptr; }
            |                   ^~~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:113:3: error: use of multiversioned function without a default
        113 |   }
            |   ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc: In member function 'void FVector::postprocess(size_t)':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:302:8: error: multiversioning needs 'ifunc' which is not supported on this target
        302 |   void fix_tail(size_t) {  }
            |        ^~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:119:3: error: use of multiversioned function without a default
        119 |   }
            |   ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:287:16: error: multiversioning needs 'ifunc' which is not supported on this target
        287 |   static float dot_product(const int16_t *v1, const int16_t *v2, size_t len)
            |                ^~~~~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:119:3: error: use of multiversioned function without a default
        119 |   }
            |   ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc: In member function 'float FVector::distance_to(const FVector*, size_t) const':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:287:16: error: multiversioning needs 'ifunc' which is not supported on this target
        287 |   static float dot_product(const int16_t *v1, const int16_t *v2, size_t len)
            |                ^~~~~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:309:3: error: use of multiversioned function without a default
        309 |   }
            |   ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc: In member function 'void* MHNSW_Share::alloc_node_internal()':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:296:17: error: multiversioning needs 'ifunc' which is not supported on this target
        296 |   static size_t alloc_size(size_t n) { return alloc_header + n*2; }
            |                 ^~~~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:424:3: error: use of multiversioned function without a default
        424 |   }
            |   ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc: In member function 'int FVectorNode::load_from_record(TABLE*)':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:299:19: error: multiversioning needs 'ifunc' which is not supported on this target
        299 |   static FVector *align_ptr(void *ptr) { return (FVector*)ptr; }
            |                   ^~~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:904:1: error: use of multiversioned function without a default
        904 | }
            | ^
      In file included from /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:25:
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/bloom_filters.h: In member function 'void VisitedSet::flush()':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/bloom_filters.h:384:8: error: multiversioning needs 'ifunc' which is not supported on this target
        384 |   void Insert(const T **data)
            |        ^~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:972:3: error: use of multiversioned function without a default
        972 |   }
            |   ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/bloom_filters.h: In member function 'uint8_t VisitedSet::seen(FVectorNode**)':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/bloom_filters.h:395:11: error: multiversioning needs 'ifunc' which is not supported on this target
        395 |   uint8_t Query(T **data)
            |           ^~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:973:64: error: use of multiversioned function without a default
        973 |   uint8_t seen(FVectorNode **nodes) { return map.Query(nodes); }
            |                                                                ^
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc: In function 'int mhnsw_read_first(TABLE*, KEY*, Item*, ulonglong)':
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:296:17: error: multiversioning needs 'ifunc' which is not supported on this target
        296 |   static size_t alloc_size(size_t n) { return alloc_header + n*2; }
            |                 ^~~~~~~~~~
      /home/faust/_git/alpine/aports/main/mariadb/src/mariadb-11.8.2/sql/vector_mhnsw.cc:1417:1: error: use of multiversioned function without a default
       1417 | }
            | ^
      ninja: subcommand failed
      

      Attachments

        Issue Links

          Activity

            People

              faust Faustin Lammler
              faust Faustin Lammler
              Sergei Golubchik Sergei Golubchik
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.