This, together with -fdata-sections and -ffunction-sections brought
nice size reductions. Before:
-rwxr-xr-x 1 maan fml 29K Oct 11 14:32 para_audioc*
-rwxr-xr-x 1 maan fml 42K Oct 11 14:32 para_client*
-rwxr-xr-x 1 maan fml 33K Oct 11 14:32 para_fade*
-rwxr-xr-x 1 maan fml 38K Oct 11 14:32 para_filter*
-rwxr-xr-x 1 maan fml 54K Oct 11 14:32 para_fsck*
-rwxr-xr-x 1 maan fml 52K Oct 11 14:32 para_gui*
-rwxr-xr-x 1 maan fml 42K Oct 11 14:32 para_recv*
-rwxr-xr-x 1 maan fml 216K Oct 11 14:32 para_server*
-rwxr-xr-x 1 maan fml 38K Oct 11 14:32 para_write*
After:
-rwxr-xr-x 1 maan fml 21K Oct 11 14:31 para_audioc*
-rwxr-xr-x 1 maan fml 33K Oct 11 14:31 para_client*
-rwxr-xr-x 1 maan fml 29K Oct 11 14:31 para_fade*
-rwxr-xr-x 1 maan fml 29K Oct 11 14:31 para_filter*
-rwxr-xr-x 1 maan fml 45K Oct 11 14:31 para_fsck*
-rwxr-xr-x 1 maan fml 47K Oct 11 14:31 para_gui*
-rwxr-xr-x 1 maan fml 30K Oct 11 14:31 para_recv*
-rwxr-xr-x 1 maan fml 208K Oct 11 14:31 para_server*
-rwxr-xr-x 1 maan fml 29K Oct 11 14:31 para_write*
# many warnings about trivial stuff
# CPPFLAGS += -Wconversion
# many warnings about trivial stuff
# CPPFLAGS += -Wconversion
+LDFLAGS += -Wl,--gc-sections
+
CPPFLAGS += -Os
CPPFLAGS += -Wall
CPPFLAGS += -Wuninitialized
CPPFLAGS += -Os
CPPFLAGS += -Wall
CPPFLAGS += -Wuninitialized
CPPFLAGS += -Wunused-macros
CPPFLAGS += -Wshadow
CPPFLAGS += -Wbad-function-cast
CPPFLAGS += -Wunused-macros
CPPFLAGS += -Wshadow
CPPFLAGS += -Wbad-function-cast
+CPPFLAGS += -fdata-sections -ffunction-sections
CPPFLAGS += -DMAIN_INPUT_FILE_IS_$(*F)
CPPFLAGS += @SSL_CPPFLAGS@
CPPFLAGS += @ncurses_cppflags@
CPPFLAGS += -DMAIN_INPUT_FILE_IS_$(*F)
CPPFLAGS += @SSL_CPPFLAGS@
CPPFLAGS += @ncurses_cppflags@
$(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) $<
para_recv: @recv_objs@
$(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) $<
para_recv: @recv_objs@
- $(CC) @recv_objs@ -o $@ @recv_ldflags@
+ $(CC) $(LDFLAGS) @recv_objs@ -o $@ @recv_ldflags@
para_filter: @filter_objs@
para_filter: @filter_objs@
- $(CC) @filter_objs@ -o $@ @filter_ldflags@
+ $(CC) $(LDFLAGS) @filter_objs@ -o $@ @filter_ldflags@
para_slider: $(slider_objs)
para_slider: $(slider_objs)
- $(CC) $(slider_objs) -o $@ @GTK_LIBS@ @GLIB_LIBS@ -lzmw
+ $(CC) $(LDFLAGS) $(slider_objs) -o $@ @GTK_LIBS@ @GLIB_LIBS@ -lzmw
para_client: @client_objs@
para_client: @client_objs@
- $(CC) -o $@ @client_objs@ @client_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @client_objs@ @client_ldflags@
- $(CC) -o $@ @gui_objs@ -lncurses
+ $(CC) $(LDFLAGS) -o $@ @gui_objs@ -lncurses
para_audiod: @audiod_objs@
para_audiod: @audiod_objs@
- $(CC) -o $@ @audiod_objs@ @audiod_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @audiod_objs@ @audiod_ldflags@
para_audioc: @audioc_objs@
para_audioc: @audioc_objs@
- $(CC) -o $@ @audioc_objs@ @audioc_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @audioc_objs@ @audioc_ldflags@
para_dbadm: $(dbadm_objs)
para_dbadm: $(dbadm_objs)
- $(CC) -o $@ $(dbadm_objs) -lncurses -lmenu
+ $(CC) $(LDFLAGS) -o $@ $(dbadm_objs) -lncurses -lmenu
- $(CC) -o $@ $(fade_objs)
+ $(CC) $(LDFLAGS) -o $@ $(fade_objs)
para_server: @server_objs@
para_server: @server_objs@
- $(CC) -o $@ @server_objs@ @server_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @server_objs@ @server_ldflags@
- $(CC) -o $@ @fsck_objs@ @fsck_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @fsck_objs@ @fsck_ldflags@
para_sdl_gui: $(sdl_gui_objs)
para_sdl_gui: $(sdl_gui_objs)
- $(CC) -o $@ $(sdl_gui_objs) -lSDL_image
+ $(CC) $(LDFLAGS) -o $@ $(sdl_gui_objs) -lSDL_image
- $(CC) -o $@ @write_objs@ @write_ldflags@
+ $(CC) $(LDFLAGS) -o $@ @write_objs@ @write_ldflags@
para_krell.so: $(krell_objs)
$(CC) -Wall -fPIC @GTK_CFLAGS@ krell.o -o $@ @GTK_LIBS@ -shared
para_krell.so: $(krell_objs)
$(CC) -Wall -fPIC @GTK_CFLAGS@ krell.o -o $@ @GTK_LIBS@ -shared