diff options
author | Jeremie Koenig <jk@jk.fr.eu.org> | 2010-08-25 05:47:08 +0000 |
---|---|---|
committer | Jeremie Koenig <jk@jk.fr.eu.org> | 2010-08-30 14:31:33 +0200 |
commit | e1c831a43ac1945db5a52ee6873856b9399dca76 (patch) | |
tree | bea8e7dd5459714c2f010e3267ba0e28c934dddc | |
parent | ca8277c6f507e54a043b84a8df9c55ac39a83c6e (diff) |
Add a PROFILE mode
* Makefile: Change FOOFLAGS defaults to appropriate values when
$(PROFILE) is defined.
* rootdir.c: Add an "exit" file, which causes exit to be called
when looked up, so that profiling data can be written to disk.
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | rootdir.c | 9 |
2 files changed, 18 insertions, 1 deletions
@@ -6,13 +6,21 @@ LIBS = -lnetfs -lps CC = gcc CFLAGS = -Wall -g CPPFLAGS = +LDFLAGS = + +ifdef PROFILE +CFLAGS= -g -pg +CPPFLAGS= -DPROFILE +LDFLAGS= -static +LIBS= -lnetfs -lfshelp -liohelp -lps -lports -lthreads -lihash -lshouldbeinlibc +endif CPPFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 all: $(TARGET) $(TARGET): $(OBJS) - $(CC) $(CFLAGS) -o $@ $^ $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) clean: $(RM) $(TARGET) $(OBJS) @@ -422,6 +422,15 @@ static const struct procfs_dir_entry rootdir_entries[] = { .cleanup_contents = procfs_cleanup_contents_with_free, }, }, +#ifdef PROFILE + /* In order to get a usable gmon.out file, we must apparently use exit(). */ + { + .name = "exit", + .ops = { + .make_node = exit, + }, + }, +#endif {} }; |