Is it bad that a process should self create an own stack? If a kernel does not want to do it.
Like here
_start:
mov $stack_head, %rsp
jmp main
.data
.align 8
stack:
.quad 0
.quad 0
.quad 0
.quad 0
stack_head:
or using the malloc syscall.
Some OSs even require setting up the stack like this.
However malloc() will not work because functions like malloc() typically require an already set-up stack pointer.
Under Linux - for example - doing it like this is a very bad idea because Linux observes the stack pointer and automatically allocates more memory if required. If you move the stack pointer like this you'll possibly cause a crash of your program.