With given script:
SECTIONS {
. = 0x1000;
.foo : {
BYTE(0x11)
SHORT(0x1122)
LONG(0x11223344)
QUAD(0x1122334455667788)
*(.foo.1)
. += 0x1000;
}
}BFD shows data commands and location counter moving in the map file:
.foo 0x0000000000001000 0x117
0x0000000000001000 0x1 BYTE 0x11
0x0000000000001001 0x2 SHORT 0x1122
0x0000000000001003 0x4 LONG 0x11223344
0x0000000000001007 0x8 QUAD 0x1122334455667788
*(.foo.1)
.foo.1 0x000000000000100f 0x8 map-file.test.tmp.o
0x0000000000001117 . = (. + 0x100)
*fill* 0x0000000000001017 0x100Patch teaches LLD to do the same.
You are passing Cmd->Size as an alignment which seems wrong to me.