Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.
29327 Discussions

Potential regression in IFX 2025.3 with UDTs in submodules

Mark_Lewy
Valued Contributor I
105 Views

Consider this (paraphrased) code:

submodule (iw2d_geometry) iw2d_geometry_s_vf
    !$ use omp_lib

    implicit none

    type virtual_store_t
        integer :: new_face_id, new_id_bnd
        integer :: number_elem
        type(face), allocatable, dimension(:) :: temporal_array_of_faces
        type(bnd_face), allocatable, dimension(:) :: temporal_array_of_bndfaces
        !$ integer(omp_lock_kind), dimension(:), allocatable :: face_locks
        logical, dimension(:), allocatable :: face_processed
        type(model), pointer :: model_pointer
    end type

    contains
    ! contents elided
end submodule

The program containing this built fine on Windows and Linux with various versions of IFX to 2025.2.

On IFX 2025.3 Linux (WSL/Ubuntu 2022.4 LTS), I'm getting this link error:

ld: out/lib/libiw2dsim.so: version node not found for symbol templ_IW2D_GEOMETRY@IW2D_GEOMETRY_S_VF_VIRTUAL_STORE_T
ld: failed to set dynamic section sizes: bad value

ifx --version outputs "ifx (IFX) 2025.3.0 20251010"

gfortran 12.3.0 also builds OK

 

I can workaround this by moving the declaration of virtual_store_t into the parent module, so I will probably won't try creating a MRE for Intel Support.

0 Kudos
0 Replies
Reply