Assembling the x86 assembly code produced by my compiler using the version of GNU Assembler that comes with MinGW-w64 produces the following warning:
E:/MinGW32/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: analogClockForWindows.exe: warning: section .bss: alignment 2**32 not representable
What does that mean? What puzzles me the most is that the assembly code does not mention .bss at all.
I do not know if it is related, but the version of GNU Assembler that comes with CygWin and one that comes with TDM-GCC both refuse to even assemble my code, and give a ton of error messages.
The assembly code that is produced by my compiler is available here: https://github.com/FlatAssembler/ArithmeticExpressionCompiler/files/6446315/analogClockForWindows.s.zip
EDIT: I was simply using gcc -o analogClockForWindows analogClockForWindows.s to compile the assembly code produced by my compiler.
UPDATE: I think this is the minimal example that triggers that warning:
.text
.comm output,7360,32
.global _main
_main:
movl $0, %eax
ret
.align 32, and it was interpreted as.p2align(power-of-2) instead of.balign(byte). Never use the ambiguous.aligndirective. I'm not interested enough to download and unzip code to look at it, if you can't be bothered to put a minimal reproducible example into the question. - Peter Cordeslderror, notas. So your code does assemble, but thenldchokes on the.objcreated by GAS? Probably worth looking at the.objwith some tools like a PE/COFF equivalent ofreadelf. - Peter Cordes.align: the 3rd arg is treated as a power-of-2 alignment on this target, but as a byte value for x86-elf-linux. - Peter Cordes