I improved linker just now and added ability to link static libraries. It is pretty simple, these static libraries are normal object files generated by assembler. Linker now have new argument for specifying path where to look for such a files. So, when you calling linker and want link static library into your binary, everything what you have to do is give a path, where library is stored, into linker with -l argument.
Linker try to link your files and if there are missing exported labels (like functions defined in libraries) then linker is going to search libraries paths.
Creating static library is simple too. Just compile your C code into assembler, and then translate it with assembler into object file.
I'm also thinking a lot about my bachelor thesis. I'm want to create board for MARK-II that will be fully open sourced. But I can't decide which FPGA to chose. I would like to fit everything into 4 layer PCB, and that can be a bit hard to do with 256pin BGA package that Cyclone IV in DE0 Nano have. So, I'm looking for solution in TQFP package. Unfortunately, Cyclone IV is packed in TQFP and variant with 22K LUT have only 79 IO. That is not enough for SDRAM and all peripherals. Larger TQFP package is available only in Cyclone III family. And unfortunately (again) these devices are available only with low speed grade. I'm wondering about breaking my design into two smaller FPGA (FPGA + CPLD maybe) but that is not way that I want to chose. Does anyone have better idea?