summaryrefslogtreecommitdiffstats
path: root/toolchain
diff options
context:
space:
mode:
authornico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-10-05 21:30:33 +0000
committernico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-10-05 21:30:33 +0000
commit3fbba28a36fbb88219790491ef2460a264017012 (patch)
tree9a103252be863731846bb94e2f7006b512fa1e6e /toolchain
parent2554028bd834617c33ce137de25be70ed81b604d (diff)
add libmissing (implementing functions missing from uClibc)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2055 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/Makefile2
-rw-r--r--toolchain/libmissing/Makefile30
-rw-r--r--toolchain/libmissing/files/math.c35
3 files changed, 66 insertions, 1 deletions
diff --git a/toolchain/Makefile b/toolchain/Makefile
index 2b1358b12..c56f263bc 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -1,6 +1,6 @@
# Main makefile for the toolchain
include $(TOPDIR)/rules.mk
-TARGETS:=sed utils binutils gcc uClibc ipkg-utils gdb
+TARGETS:=sed utils binutils gcc uClibc ipkg-utils gdb libmissing
TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS))
TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
diff --git a/toolchain/libmissing/Makefile b/toolchain/libmissing/Makefile
new file mode 100644
index 000000000..bd3749dfb
--- /dev/null
+++ b/toolchain/libmissing/Makefile
@@ -0,0 +1,30 @@
+include $(TOPDIR)/rules.mk
+
+LIBMISSING_DIR:=$(TOOL_BUILD_DIR)/libmissing
+
+LIBMISSING_SRCS+=./files/math.c
+LIBMISSING_OBJS:=$(patsubst ./files/%.c,$(LIBMISSING_DIR)/%.o,$(LIBMISSING_SRCS))
+
+$(LIBMISSING_DIR)/.prepared:
+ mkdir -p $(LIBMISSING_DIR)
+ touch $@
+
+$(LIBMISSING_OBJS): $(LIBMISSING_DIR)/%.o : ./files/%.c
+ $(TARGET_CC) $(TARGET_CFLAGS) -c $< -o $@
+
+$(LIBMISSING_DIR)/libmissing.a: $(LIBMISSING_OBJS)
+ $(TARGET_CROSS)ar rc $(LIBMISSING_DIR)/libmissing.a $(LIBMISSING_OBJS)
+
+$(STAGING_DIR)/usr/lib/libmissing.a: $(LIBMISSING_DIR)/libmissing.a
+ mkdir -p $(STAGING_DIR)/usr/lib
+ cp -fpR $< $@
+ touch -c $@
+
+source:
+prepare: $(LIBMISSING_DIR)/.prepared
+compile: $(LIBMISSING_DIR)/libmissing.a
+install: $(STAGING_DIR)/usr/lib/libmissing.a
+clean:
+ rm -rf \
+ $(STAGING_DIR)/usr/lib/libmissing.a \
+ $(LIBMISSING_DIR) \
diff --git a/toolchain/libmissing/files/math.c b/toolchain/libmissing/files/math.c
new file mode 100644
index 000000000..cc8a661ac
--- /dev/null
+++ b/toolchain/libmissing/files/math.c
@@ -0,0 +1,35 @@
+/* vi: set sw=4 ts=4: */
+
+/* cosf for uClibc
+ *
+ * wrapper for cos(x)
+ */
+
+#include "math.h"
+
+#ifdef __STDC__
+ float cosf(float x) /* wrapper cos */
+#else
+ float cosf(x) /* wrapper cos */
+ float x;
+#endif
+{
+ return (float) cos( (double)x );
+}
+
+/* sinf for uClibc
+ *
+ * wrapper for sin(x)
+ */
+
+#include "math.h"
+
+#ifdef __STDC__
+ float sinf(float x) /* wrapper sin */
+#else
+ float sinf(x) /* wrapper sin */
+ float x;
+#endif
+{
+ return (float) sin( (double)x );
+}