Skip to content

Incorrect parse result for raw archive path #135

Closed
@termoshtt

Description

@termoshtt

intel-mkl package in ArchLinux provides a pkg-config result:

$ pkg-config --libs mkl-static-lp64-seq
-Wl,--start-group /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/mkl/lib/intel64/libmkl_sequential.a /opt/intel/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl 

Also, intel-mkl package in Debain non-free repository also returns similar result (install directory is different):

$ pkg-config --libs mkl-static-lp64-seq
-Wl,--start-group /usr/lib/x86_64-linux-gnu/libmkl_intel_lp64.a /usr/lib/x86_64-linux-gnu/libmkl_sequential.a /usr/lib/x86_64-linux-gnu/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl

However, this crate fails to parse this output:

fn main() {
    let lib = pkg_config::Config::new()
        .probe("mkl-static-lp64-seq")
        .unwrap();
    println!("{:?}", lib);
}
[dependencies]
pkg-config = "0.3.25"
$ cargo run        
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target/debug/pkg-config-test`
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_STATIC
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=SYSROOT
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_STATIC
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rustc-link-lib=pthread
cargo:rustc-link-lib=m
cargo:rustc-link-lib=dl
cargo:rustc-link-arg=-Wl,--start-group
cargo:rustc-link-arg=-Wl,--end-group
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_STATIC
cargo:rerun-if-env-changed=MKL_STATIC_LP64_SEQ_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
Library { libs: ["pthread", "m", "dl"], link_paths: [], frameworks: [], framework_paths: [], include_paths: ["/opt/intel/mkl/include"], ld_args: [["--start-group"], ["--end-group"]], defines: {}, version: "2020", _priv: () }

This should includes three archives shown in original pkg-config mkl-static-lp64-seq command

  • /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a
  • /opt/intel/mkl/lib/intel64/libmkl_sequential.a
  • /opt/intel/mkl/lib/intel64/libmkl_core.a

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions