summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-runtime.inc
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-runtime.inc')
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime.inc182
1 files changed, 182 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
new file mode 100644
index 0000000000..0c2dc75786
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -0,0 +1,182 @@
1require gcc-configure-common.inc
2
3CXXFLAGS := "${@oe_filter_out('-fvisibility-inlines-hidden', '${CXXFLAGS}', d)}"
4
5EXTRA_OECONF_PATHS = "\
6 --with-gxx-include-dir=${includedir}/c++/${BINV} \
7 --with-sysroot=${STAGING_DIR_TARGET} \
8 --with-build-sysroot=${STAGING_DIR_TARGET} \
9"
10
11EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
12
13RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic"
14# ?
15# libiberty
16# libmudflap
17# libgfortran needs separate recipe due to libquadmath dependency
18
19do_configure () {
20 export CXX="${CXX} -nostdinc++ -nostdlib++"
21 mtarget=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
22 target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
23 hardlinkdir ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget ${B}
24 for d in libgcc ${RUNTIMETARGET}; do
25 echo "Configuring $d"
26 rm -rf ${B}/$target/$d/
27 mkdir -p ${B}/$target/$d/
28 cd ${B}/$target/$d/
29 chmod a+x ${S}/$d/configure
30 ${S}/$d/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
31 done
32}
33
34do_compile () {
35 target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
36 for d in libgcc ${RUNTIMETARGET}; do
37 cd ${B}/$target/$d/
38 oe_runmake MULTIBUILDTOP=${B}/$target/$d/
39 done
40}
41
42do_install () {
43 target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
44 for d in ${RUNTIMETARGET}; do
45 cd ${B}/$target/$d/
46 oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/$d/ install
47 done
48 rm -rf ${D}${infodir}/libgomp.info ${D}${infodir}/dir
49 rm -rf ${D}${infodir}/libquadmath.info ${D}${infodir}/dir
50 if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude ]; then
51 rmdir --ignore-fail-on-non-empty -p ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude
52 fi
53 if [ -d ${D}${infodir} ]; then
54 rmdir --ignore-fail-on-non-empty -p ${D}${infodir}
55 fi
56 if [ "${TARGET_OS}" = "linux-gnuspe" ]; then
57 ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
58 fi
59 chown -R root:root ${D}
60}
61
62RDEPENDS_${PN}-ptest = "dejagnu make"
63
64do_configure_ptest() {
65 if [ "${PN}" = "${BPN}" ]; then
66 mkdir -p ${D}${PTEST_PATH}
67 cp ${S}/../run-ptest ${WORKDIR}
68 fi
69}
70
71do_compile_ptest() {
72 oe_runmake -C ${B}/${TARGET_SYS}/libstdc++-v3/testsuite buildtest-TESTS
73}
74
75do_install_ptest() {
76 oe_runmake -C ${B}/${TARGET_SYS}/libstdc++-v3 install-ptest DEST_DIR=${D}${PTEST_PATH} SOURCE_DIR=${S} BUILD_DIR=${B}/${TARGET_SYS} REPLACE_DIR=${PTEST_PATH}
77}
78
79INHIBIT_DEFAULT_DEPS = "1"
80DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ libgcc"
81PROVIDES = "virtual/${TARGET_PREFIX}compilerlibs"
82
83BBCLASSEXTEND = "nativesdk"
84
85PACKAGES = "\
86 ${PN}-dbg \
87 libstdc++ \
88 libstdc++-precompile-dev \
89 libstdc++-dev \
90 libstdc++-staticdev \
91 libg2c \
92 libg2c-dev \
93 libssp \
94 libssp-dev \
95 libssp-staticdev \
96 libmudflap \
97 libmudflap-dev \
98 libmudflap-staticdev \
99 libquadmath \
100 libquadmath-dev \
101 libquadmath-staticdev \
102 libgomp \
103 libgomp-dev \
104 libgomp-staticdev \
105 libatomic \
106 libatomic-dev \
107 libatomic-staticdev \
108 ${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)} \
109"
110# The base package doesn't exist, so we clear the recommends.
111RRECOMMENDS_${PN}-dbg = ""
112
113# include python debugging scripts
114FILES_${PN}-dbg += "\
115 ${libdir}/libstdc++.so.*-gdb.py \
116 ${datadir}/gcc-${BINV}/python/libstdcxx \
117"
118
119FILES_libg2c = "${target_libdir}/libg2c.so.*"
120FILES_libg2c-dev = "\
121 ${libdir}/libg2c.so \
122 ${libdir}/libg2c.a \
123 ${libdir}/libfrtbegin.a \
124"
125
126FILES_libstdc++ = "${libdir}/libstdc++.so.*"
127FILES_libstdc++-dev = "\
128 ${includedir}/c++/ \
129 ${libdir}/libstdc++.so \
130 ${libdir}/libstdc++.la \
131 ${libdir}/libsupc++.la \
132"
133FILES_libstdc++-staticdev = "\
134 ${libdir}/libstdc++.a \
135 ${libdir}/libsupc++.a \
136"
137
138FILES_libstdc++-precompile-dev = "${includedir}/c++/${TARGET_SYS}/bits/*.gch"
139
140FILES_libssp = "${libdir}/libssp.so.*"
141FILES_libssp-dev = "\
142 ${libdir}/libssp*.so \
143 ${libdir}/libssp*_nonshared.a \
144 ${libdir}/libssp*.la \
145 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp \
146"
147FILES_libssp-staticdev = "${libdir}/libssp*.a"
148
149FILES_libquadmath = "${libdir}/libquadmath*.so.*"
150FILES_libquadmath-dev = "\
151 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/quadmath* \
152 ${libdir}/libquadmath*.so \
153 ${libdir}/libquadmath.la \
154"
155FILES_libquadmath-staticdev = "${libdir}/libquadmath.a"
156
157FILES_libmudflap = "${libdir}/libmudflap*.so.*"
158FILES_libmudflap-dev = "\
159 ${libdir}/libmudflap*.so \
160 ${libdir}/libmudflap.la \
161"
162FILES_libmudflap-staticdev = "${libdir}/libmudflap.a"
163
164FILES_libgomp = "${libdir}/libgomp*${SOLIBS}"
165FILES_libgomp-dev = "\
166 ${libdir}/libgomp*${SOLIBSDEV} \
167 ${libdir}/libgomp*.la \
168 ${libdir}/libgomp.spec \
169 ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \
170"
171FILES_libgomp-staticdev = "${libdir}/libgomp*.a"
172
173FILES_libatomic = "${libdir}/libatomic.so.*"
174FILES_libatomic-dev = "\
175 ${libdir}/libatomic.so \
176 ${libdir}/libatomic.la \
177"
178FILES_libatomic-staticdev = "${libdir}/libatomic.a"
179
180do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
181do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
182do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"