Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

version node not found for symbol

Sachs__Stephen
Beginner
367 Views

I am running into isues when compiling adios with `ifx`. `ifort` is fine.

 

I was able to make a minimal reproducer:

```

$ cat check_fortran.F90
module foo
  interface bar
    module subroutine bar_integer(x)
      integer, intent(in) :: x
    end subroutine
    module subroutine bar_real(x)
      real, intent(in) :: x
    end subroutine

  end interface
end module
program main
end program

$ cat check_fortran_sub.F90
submodule ( foo ) sub
contains
  module subroutine bar_integer(x)
    integer, intent(in) :: x
  end subroutine
  module subroutine bar_real(x)
    real, intent(in) :: x
  end subroutine
end submodule

$ ifx -module . -I . -o check_fortran.F90.o -c -fPIC -O3 check_fortran.F90
$ ifx -module . -I . -o check_fortran_sub.F90.o -c -fPIC -O3 check_fortran_sub.F90
$ /usr/bin/ld -shared -o check_fortran.so check_fortran.F90.o check_fortran_sub.F90.o

```

 

Error message:

```

/usr/bin/ld: check_fortran.so: version node not found for symbol foo@sub._
/usr/bin/ld: failed to set dynamic section sizes: Bad value

```

0 Kudos
1 Solution
Robert_C_Intel
Employee
338 Views

I could not reproduce on ubuntu 22 with latest ifx:

 

(venv) rscohn1@anpfclxlin02:test$ ifx -module . -I . -o check_fortran.F90.o -c -fPIC -O3 check_fortran.F90
(venv) rscohn1@anpfclxlin02:test$ ifx -module . -I . -o check_fortran_sub.F90.o -c -fPIC -O3 check_fortran_sub.F90
(venv) rscohn1@anpfclxlin02:test$ /usr/bin/ld -shared -o check_fortran.so check_fortran.F90.o check_fortran_sub.F90.o
(venv) rscohn1@anpfclxlin02:test$ ifx --version
ifx (IFORT) 2023.0.0 20221201
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

(venv) rscohn1@anpfclxlin02:test$

View solution in original post

2 Replies
Robert_C_Intel
Employee
339 Views

I could not reproduce on ubuntu 22 with latest ifx:

 

(venv) rscohn1@anpfclxlin02:test$ ifx -module . -I . -o check_fortran.F90.o -c -fPIC -O3 check_fortran.F90
(venv) rscohn1@anpfclxlin02:test$ ifx -module . -I . -o check_fortran_sub.F90.o -c -fPIC -O3 check_fortran_sub.F90
(venv) rscohn1@anpfclxlin02:test$ /usr/bin/ld -shared -o check_fortran.so check_fortran.F90.o check_fortran_sub.F90.o
(venv) rscohn1@anpfclxlin02:test$ ifx --version
ifx (IFORT) 2023.0.0 20221201
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

(venv) rscohn1@anpfclxlin02:test$

Sachs__Stephen
Beginner
307 Views

Thank you for checking. Seems like this was fixed in 2022.2.0:

 

$ for ifx in $(find /shared/spack/opt/spack/ -name ifx); do $ifx -module . -I . -o check_fortran.F90.o -c -fPIC -O3 check_fortran.F90; $ifx -module . -I . -o check_fortran_sub.F90.o -c -fPIC -O3 check_fortran_sub.F90; /usr/bin/ld -shared -o check_fortran.so check_fortran.F90.o check_fortran_sub.F90.o; $ifx --version; done


ifx (IFORT) 2022.2.0 20220730
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

ifx (IFORT) 2023.0.0 20221201
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

/usr/bin/ld: check_fortran.so: version node not found for symbol foo@sub._
/usr/bin/ld: failed to set dynamic section sizes: Bad value
ifx (IFORT) 2022.1.0 20220316
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

ifx (IFORT) 2022.2.1 20221020
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

Reply