On Wed, Nov 30, 2016 at 08:36:27PM +0300, Alexander Monakov wrote: > env.c contains a static constructor that would initialize various global > libgomp > data such as members of gomp_global_icv. Therefore it's not ok to define them > in a separate translation unit: under static linking this results in env.o not > linked in (unless an incremental link on icv.o+env.o is performed when > building > libgomp.a). Move definitions of global data from icv.c back to env.c, remove > empty config/nvptx/env.c, and guard environment access on NVPTX using the new > LIBGOMP_OFFLOADED_ONLY macro. > > * config/nvptx/env.c: Delete. > * icv.c: Move definitions of ICV variables back ... > * env.c: ...here. Do not compile environment-related functionality if > LIBGOMP_OFFLOADED_ONLY is set.
Can you please move the ICVs after all the (especially system) headers are included, even when it means 2 separate #ifndef LIBGOMP_OFFLOADED_ONLY instead of just one? Ok with that change. Jakub