include gcc_${PV}.oe FILESDIR = ${@os.path.dirname(oe.data.getVar('FILE',d,1))}/gcc-${PV} DESCRIPTION := The GNU cc and gcc C compilers (uclibc). LICENSE := GPL MAINTAINER := Gerald Britton # This will ONLY build to this target TARGET_VENDOR := -uclibc TARGET_SYS := ${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS} TARGET_PREFIX := ${TARGET_SYS}- DEPENDS := virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \ uclibc patcher PACKAGES = ${PN} ${PN}-symlinks \ ${PN}-c++ ${PN}-c++-symlinks \ uclibc-libgcc uclibc-libstdc++ uclibc-libstdc++-dev \ ${PN}-doc # The rest of these are properly defined in gcc_${PV}.oe FILES_uclibc-libgcc = ${FILES_libgcc} FILES_uclibc-libstdc++ = ${FILES_libstdc++} FILES_uclibc-libstdc++-dev = \ ${includedir}/c++/${PV}-uclibc \ ${libdir}/libstdc++.so \ ${libdir}/libstdc++.la \ ${libdir}/libstdc++.a \ ${libdir}/libsupc++.la \ ${libdir}/libsupc++.a SRC_URI_append = " file://${FILESDIR}/gcc-001-disable-mathf.patch;patch=1 \ file://${FILESDIR}/gcc-006-include-search.patch;patch=1 \ file://${FILESDIR}/gcc-810-libstd++-locale.patch;patch=1" EXTRA_OECONF := --with-local-prefix=${prefix}/local \ --with-gxx-include-dir=${includedir}/c++/${PV}-uclibc \ --enable-target-optspace \ --disable-nls \ --with-gnu-ld \ --disable-__cxa_atexit \ --enable-languages=c,c++ \ --enable-shared \ --enable-multilib \ --program-prefix=${TARGET_PREFIX} gccbuild_do_patch () { # # Hack things to use the correct shared lib loader # LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" .` if [ -n "$LIST" ] ; then perl -i -p -e "s,-dynamic-linker.*\.so[\.0-9]*},-dynamic-linker /lib/ld-uClibc.so.0},;" $LIST fi # # Prevent system glibc start files from leaking in uninvited... # perl -i -p -e "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 = \"${CROSS_DIR}/${TARGET_SYS}/lib/\";,;" gcc/gcc.c perl -i -p -e "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 = \"${CROSS_DIR}/${TARGET_SYS}/usr/lib/\";,;" gcc/gcc.c # # Prevent system glibc include files from leaking in uninvited... # perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=${CROSS_DIR}/${TARGET_SYS}/include,;" gcc/Makefile.in perl -i -p -e "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \"${CROSS_DIR}/${TARGET_SYS}/include\",;" gcc/cppdefault.h # # Prevent system glibc libraries from being found by collect2 # when it calls locatelib() and rummages about the system looking # for libraries with the correct name... # perl -i -p -e "s,\"/lib,\"${CROSS_DIR}/${TARGET_SYS}/lib,g;" \ gcc/collect2.c perl -i -p -e "s,\"/usr/,\"${CROSS_DIR}/${TARGET_SYS}/usr/,g;" \ gcc/collect2.c # # Prevent gcc from using the unwind-dw2-fde-glibc code # perl -i -p -e "s,^#ifndef inhibit_libc,#define inhibit_libc\n#ifndef inhibit_libc,g;" gcc/unwind-dw2-fde-glibc.c } python do_patch () { oe.build.exec_func('base_do_patch', d) oe.build.exec_func('gccbuild_do_patch', d) }