Not at all, there only needs to exist enough low level primitives (aka compiler intrisics) to build the whole stack.
That is how Lisp Machines and Xerox PARC workstation OSes used to be built, or Mirage OS for a more recent example.
And I do consider Lisp functional, since when I reached university, the options were Lisp dialects, Mirada was fresh, Standard ML and Caml Light were rather new.
There was yet to appear the mentality that OCaml / Haskell === FP.
That is how Lisp Machines and Xerox PARC workstation OSes used to be built, or Mirage OS for a more recent example.
And I do consider Lisp functional, since when I reached university, the options were Lisp dialects, Mirada was fresh, Standard ML and Caml Light were rather new.
There was yet to appear the mentality that OCaml / Haskell === FP.