Dnia 14 Października 2010, 22:42, Cz, Ian Lance Taylor napisał: > "Michał Bieliński" <michal@xxxxxxxxxxx> writes: > >> I am linking C object files which rely on functions with constructor >> attribute with my program. Ordinarily gcc generates code calling all >> such >> routines before main gets control. However, my program is not written in >> C and such code is not included. Resulting executable works but linked >> objects refuse to cooperate because their initializing constructors were >> not called. Is there a way to manually run these functions? > > In general, yes. However, the precise details depend greatly on your > target. So tell us more. My aim is to combine GNU Prolog with Free Pascal. Some gprolog object files use constructors. Unfortunately these are declared static disallowing me to call them by name. Is any other information needed? > In general you will want to link crtbegin.o before all your .o files and > crtend.o after them. Then generally the .init section should contain > what you need. Post-processing link.res script created by fpc and adding crtbegin.o as first item and crtend.o as last works. It compiles but I still need some way of executing stuff in .init section. -- Michal Bielinski