Multiple definitions of variables in 6S ThirdParty module
This issue becomes apparent when using LTO - e.g. sixs_aer__ is defined in several translation units:
src/sixs_aer__comm.c src/6SV1.0B/sixs_aer__comm.c src/6SV1.0B/AEROSO.c src/otb_main6S_function.c
The sixs_aer__ struct is a global variable created for the F77 "COMMON" declaration. It should be defined exactly once.
The duplication of the sixs_aer__comm.c file is an obvious error, as both instances are included as source in the library (once using GLOB *.c, once explicitly).
The instances in otb_main6S_function.c and sixs_aer__comm.c by itself are quite pointless, as they are not referenced in the same translation unit.
Having 4 definitions is bad, as any usage of the variables via "extern" essentially becomes undefined. Maybe this is the instance from "AEROSO.c", when found first by the GLOB and the linker uses the first available instance, but just maybe ...