Index: boot/Makefile.build
===================================================================
--- boot/Makefile.build	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ boot/Makefile.build	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -36,5 +36,4 @@
 DEFS = -DBOOT -DRELEASE=$(RELEASE) "-DCOPYRIGHT=$(COPYRIGHT)" "-DNAME=$(NAME)" -D__$(BITS)_BITS__ -D__$(ENDIANESS)__
 
-AFLAGS = --fatal-warnings
 LDFLAGS = -Wl,--fatal-warnings,--warn-common $(EXTRA_LDFLAGS)
 
@@ -42,5 +41,6 @@
 	-ffreestanding -nostdlib \
 	-fexec-charset=UTF-8 -finput-charset=UTF-8 -fno-common \
-	-fdebug-prefix-map=$(realpath $(ROOT_PATH))=.
+	-fdebug-prefix-map=$(realpath $(ROOT_PATH))=. \
+	-Wa,--fatal-warnings
 
 GCC_CFLAGS = -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
@@ -80,6 +80,4 @@
 -include $(DEPENDS)
 
-AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
-
 $(BOOT_OUTPUT): $(RAW)
 	$(OBJCOPY) -O $(BFD_OUTPUT) $< $@
@@ -92,8 +90,8 @@
 
 %.o: %.s | depend
-	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS)
 
 %.o: %.S | depend
-	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS)
 
 %.o: %.c | depend
Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ kernel/Makefile	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -92,5 +92,6 @@
 	-ffreestanding -nostdlib \
 	-fexec-charset=UTF-8 -finput-charset=UTF-8 -fno-common \
-	-fdebug-prefix-map=$(realpath $(ROOT_PATH))=.
+	-fdebug-prefix-map=$(realpath $(ROOT_PATH))=. \
+	-Wa,--fatal-warnings
 
 GCC_CFLAGS = -std=gnu11 -Wall -Wextra -Wno-unused-parameter \
@@ -101,5 +102,6 @@
 	-Wno-missing-field-initializers -Wno-unused-command-line-argument \
 	-Wmissing-prototypes -Werror-implicit-function-declaration \
-	-Wwrite-strings -pipe -fno-stack-protector -fno-PIC
+	-Wwrite-strings -pipe -fno-stack-protector -fno-PIC \
+	-mllvm -asm-macro-max-nesting-depth=1000
 
 ifeq ($(CONFIG_DEBUG),y)
@@ -119,5 +121,4 @@
 endif
 
-AFLAGS += --fatal-warnings
 LDFLAGS += -Wl,-n -T $(LINK) -Wl,-M,--fatal-warnings,--warn-common
 
@@ -341,14 +342,8 @@
 GENARCH_DEPENDS := $(addsuffix .d,$(basename $(GENARCH_SOURCES)))
 
-AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
-
 -include $(GENERIC_DEPENDS)
 -include $(ARCH_DEPENDS)
 -include $(GENARCH_DEPENDS)
 
-ifeq ($(COMPILER),clang)
-	AS_CFLAGS += -mllvm -asm-macro-max-nesting-depth=1000
-endif
-
 ifeq ($(CONFIG_SYMTAB),y)
 	SYMTAB_OBJECTS := generic/src/debug/real_map.o
@@ -374,8 +369,8 @@
 
 %.o: %.S
-	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS)
 
 %.o: %.s
-	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS)
 
 %.o: %.c
@@ -383,8 +378,8 @@
 
 $(REAL_MAP).o: $(REAL_MAP).bin
-	echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $@ -
+	echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(CC) $(CFLAGS) -x assembler -c -o $@ -
 
 $(REAL_MAP).bin: $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
-	echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(EMPTY_MAP) -
+	echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(CC) $(CFLAGS) -x assembler -c -o $(EMPTY_MAP) -
 	$(CC) $(DEFS) $(CFLAGS) $(LDFLAGS) -Wl,-Map,$(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
 	$(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP)
@@ -394,5 +389,5 @@
 	# on architectures that have bss after symtab
 
-	echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(SIZEOK_MAP) -
+	echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) -x assembler -c -o $(SIZEOK_MAP) -
 	$(CC) $(DEFS) $(CFLAGS) $(LDFLAGS) -Wl,-Map,$(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
 	$(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP)
Index: kernel/arch/arm32/Makefile.inc
===================================================================
--- kernel/arch/arm32/Makefile.inc	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ kernel/arch/arm32/Makefile.inc	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -35,5 +35,5 @@
 	# This is necessary to allow vmsr insn and fpexc manipulation
 	# Use vfp32 to allow context save/restore of d16-d31 regs.
-	AFLAGS += -mfloat-abi=hard -mfpu=vfp3
+	COMMON_CFLAGS += -mfloat-abi=hard
 endif
 
Index: kernel/arch/ia64/Makefile.inc
===================================================================
--- kernel/arch/ia64/Makefile.inc	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ kernel/arch/ia64/Makefile.inc	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -30,5 +30,4 @@
 COMMON_CFLAGS += -mconstant-gp -fno-unwind-tables -mfixed-range=f32-f127
 
-AFLAGS += -mconstant-gp
 LDFLAGS += -Wl,-EL
 
Index: kernel/arch/ppc32/Makefile.inc
===================================================================
--- kernel/arch/ppc32/Makefile.inc	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ kernel/arch/ppc32/Makefile.inc	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -28,6 +28,5 @@
 
 
-COMMON_CFLAGS += -mcpu=powerpc -msoft-float -m32
-AFLAGS += -a32
+COMMON_CFLAGS += -mcpu=powerpc -msoft-float -m32 -Wa,-a32
 LDFLAGS += -Wl,-no-check-sections
 
Index: uspace/Makefile.common
===================================================================
--- uspace/Makefile.common	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ uspace/Makefile.common	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -109,5 +109,4 @@
 START_FILES = $(LIBC_PREFIX)/crt0.o $(LIBC_PREFIX)/crt1.o
 
-AFLAGS = --fatal-warnings
 LDFLAGS = -Wl,--fatal-warnings,--warn-common
 
@@ -194,5 +193,6 @@
 	-Werror-implicit-function-declaration \
 	-Wsystem-headers \
-	-Wunknown-pragmas
+	-Wunknown-pragmas \
+	-Wa,--fatal-warnings
 
 # XXX: -fno-builtin-strftime is for a seemingly spurious format warning.
@@ -299,6 +299,4 @@
 LIB_LDFLAGS = $(LDFLAGS) -shared -Wl,-soname,$(LSONAME) -Wl,--no-undefined,--no-allow-shlib-undefined
 
-AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
-
 OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
 LOBJECTS := $(addsuffix .lo,$(basename $(SOURCES)))
@@ -386,8 +384,8 @@
 
 %.o: %.S | depend
-	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS)
 
 %.o: %.s | depend
-	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS)
 
 %.o: %.c | depend
@@ -407,8 +405,8 @@
 
 %.lo: %.S | depend
-	$(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS)
 
 %.lo: %.s | depend
-	$(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS)
+	$(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS)
 
 %.lo: %.c | depend
Index: uspace/lib/c/arch/ppc32/Makefile.common
===================================================================
--- uspace/lib/c/arch/ppc32/Makefile.common	(revision d86393c81ef43390e393dd578141470b2c8ef675)
+++ uspace/lib/c/arch/ppc32/Makefile.common	(revision 874ed210190e4ba496b92a1fbb02ea57a3080203)
@@ -33,7 +33,6 @@
 endif
 
-COMMON_CFLAGS += -mcpu=powerpc -m$(FLOATS)-float -m32 -Wl,-z,max-page-size=0x1000
-AFLAGS += -a32
-LDFLAGS += -Wl,--gc-sections
+COMMON_CFLAGS += -mcpu=powerpc -m$(FLOATS)-float -m32 -Wa,-a32
+LDFLAGS += -Wl,--gc-sections -Wl,-z,max-page-size=0x1000
 
 ENDIANESS = BE
