Changes in / [39bcc99:c2a6983] in mainline


Ignore:
Files:
10 added
3 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    r39bcc99 rc2a6983  
    291291@ "gcc_cross" GNU C Compiler (cross-compiler)
    292292@ "gcc_native" GNU C Compiler (native)
     293@ "gcc_helenos" GNU C Compiler (HelenOS-specific cross-compiler)
    293294@ "icc" Intel C Compiler
    294295@ "clang" Clang
     
    299300@ "gcc_native" GNU C Compiler (native)
    300301@ "icc" Intel C Compiler
     302@ "gcc_helenos" GNU C Compiler (HelenOS-specific cross-compiler)
    301303! [PLATFORM=ia64] COMPILER (choice)
    302304
     
    304306@ "gcc_cross" GNU C Compiler (cross-compiler)
    305307@ "gcc_native" GNU C Compiler (native)
     308@ "gcc_helenos" GNU C Compiler (HelenOS-specific cross-compiler)
    306309! [PLATFORM=mips32|PLATFORM=mips64|PLATFORM=ppc32] COMPILER (choice)
    307310
     
    309312@ "gcc_cross" GNU C Compiler (cross-compiler)
    310313@ "gcc_native" GNU C Compiler (native)
     314@ "gcc_helenos" GNU C Compiler (HelenOS-specific cross-compiler)
    311315@ "clang" Clang
    312316! [PLATFORM=abs32le|PLATFORM=arm32|PLATFORM=sparc64] COMPILER (choice)
     
    319323@ "ia32" Intel IA-32
    320324@ "mips32" MIPS 32-bit
    321 ! [PLATFORM=abs32le&COMPILER=gcc_cross] CROSS_TARGET (choice)
     325! [PLATFORM=abs32le&(COMPILER=gcc_cross|COMPILER=gcc_helenos)] CROSS_TARGET (choice)
    322326
    323327
  • boot/Makefile.build

    r39bcc99 rc2a6983  
    7575endif
    7676
     77ifeq ($(COMPILER),gcc_helenos)
     78        CFLAGS = $(GCC_CFLAGS) $(EXTRA_CFLAGS)
     79        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     80endif
     81
     82
    7783ifeq ($(COMPILER),icc)
    7884        CFLAGS = $(ICC_CFLAGS) $(EXTRA_CFLAGS)
  • kernel/Makefile

    r39bcc99 rc2a6983  
    167167
    168168ifeq ($(COMPILER),gcc_cross)
     169        CFLAGS = $(GCC_CFLAGS)
     170        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     171        INSTRUMENTATION = -finstrument-functions
     172endif
     173
     174ifeq ($(COMPILER),gcc_helenos)
    169175        CFLAGS = $(GCC_CFLAGS)
    170176        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
  • tools/autotool.py

    r39bcc99 rc2a6983  
    186186        gnu_target = None
    187187        clang_target = None
     188        helenos_target = None
    188189        cc_args = []
    189190       
     
    195196                        gnu_target = "arm-linux-gnueabi"
    196197                        clang_target = "arm-unknown-linux"
     198                        helenos_target = "arm-helenos-gnueabi"
    197199               
    198200                if (config['CROSS_TARGET'] == "ia32"):
    199201                        gnu_target = "i686-pc-linux-gnu"
    200202                        clang_target = "i386-unknown-linux"
     203                        helenos_target = "i686-pc-helenos"
    201204               
    202205                if (config['CROSS_TARGET'] == "mips32"):
    203206                        gnu_target = "mipsel-linux-gnu"
    204207                        clang_target = "mipsel-unknown-linux"
     208                        helenos_target = "mipsel-helenos"
    205209                        common['CC_ARGS'].append("-mabi=32")
    206210       
     
    209213                gnu_target = "amd64-linux-gnu"
    210214                clang_target = "x86_64-unknown-linux"
     215                helenos_target = "amd64-helenos"
    211216       
    212217        if (config['PLATFORM'] == "arm32"):
     
    214219                gnu_target = "arm-linux-gnueabi"
    215220                clang_target = "arm-unknown-linux"
     221                helenos_target = "arm-helenos-gnueabi"
    216222       
    217223        if (config['PLATFORM'] == "ia32"):
     
    219225                gnu_target = "i686-pc-linux-gnu"
    220226                clang_target = "i386-unknown-linux"
     227                helenos_target = "i686-pc-helenos"
    221228       
    222229        if (config['PLATFORM'] == "ia64"):
    223230                target = config['PLATFORM']
    224231                gnu_target = "ia64-pc-linux-gnu"
     232                helenos_target = "ia64-pc-helenos"
    225233       
    226234        if (config['PLATFORM'] == "mips32"):
     
    232240                        gnu_target = "mipsel-linux-gnu"
    233241                        clang_target = "mipsel-unknown-linux"
     242                        helenos_target = "mipsel-helenos"
    234243               
    235244                if ((config['MACHINE'] == "bmalta")):
     
    237246                        gnu_target = "mips-linux-gnu"
    238247                        clang_target = "mips-unknown-linux"
     248                        helenos_target = "mips-helenos"
    239249       
    240250        if (config['PLATFORM'] == "mips64"):
     
    246256                        gnu_target = "mips64el-linux-gnu"
    247257                        clang_target = "mips64el-unknown-linux"
     258                        helenos_target = "mips64el-helenos"
    248259       
    249260        if (config['PLATFORM'] == "ppc32"):
     
    251262                gnu_target = "ppc-linux-gnu"
    252263                clang_target = "powerpc-unknown-linux"
     264                helenos_target = "ppc-helenos"
    253265       
    254266        if (config['PLATFORM'] == "sparc64"):
     
    256268                gnu_target = "sparc64-linux-gnu"
    257269                clang_target = "sparc-unknown-linux"
    258        
    259         return (target, cc_args, gnu_target, clang_target)
     270                helenos_target = "sparc64-helenos"
     271       
     272        return (target, cc_args, gnu_target, clang_target, helenos_target)
    260273
    261274def check_app(args, name, details):
     
    697710                cross_prefix = "/usr/local/cross"
    698711       
     712        # HelenOS cross-compiler prefix
     713        if ('CROSS_HELENOS_PREFIX' in os.environ):
     714                cross_helenos_prefix = os.environ['CROSS_HELENOS_PREFIX']
     715        else:
     716                cross_helenos_prefix = "/usr/local/cross-helenos"
     717       
    699718        # Prefix binutils tools on Solaris
    700719        if (os.uname()[0] == "SunOS"):
     
    719738                common['CC_ARGS'] = []
    720739                if (config['COMPILER'] == "gcc_cross"):
    721                         target, cc_args, gnu_target, clang_target = get_target(config)
     740                        target, cc_args, gnu_target, clang_target, helenos_target = get_target(config)
    722741                       
    723742                        if (target is None) or (gnu_target is None):
     
    727746                        path = "%s/%s/bin" % (cross_prefix, target)
    728747                        prefix = "%s-" % gnu_target
     748                       
     749                        check_gcc(path, prefix, common, PACKAGE_CROSS)
     750                        check_binutils(path, prefix, common, PACKAGE_CROSS)
     751                       
     752                        check_common(common, "GCC")
     753                        common['CC'] = common['GCC']
     754                        common['CC_ARGS'].extend(cc_args)
     755               
     756                if (config['COMPILER'] == "gcc_helenos"):
     757                        target, cc_args, gnu_target, clang_target, helenos_target = get_target(config)
     758                       
     759                        if (target is None) or (helenos_target is None):
     760                                print_error(["Unsupported compiler target for GNU GCC.",
     761                                             "Please contact the developers of HelenOS."])
     762                       
     763                        path = "%s/%s/bin" % (cross_helenos_prefix, target)
     764                        prefix = "%s-" % helenos_target
    729765                       
    730766                        check_gcc(path, prefix, common, PACKAGE_CROSS)
  • tools/toolchain.sh

    r39bcc99 rc2a6983  
    5555BINUTILS_VERSION="2.23.1"
    5656BINUTILS_RELEASE=""
     57BINUTILS_PATCHES="toolchain-binutils-2.23.1.patch"
    5758GCC_VERSION="4.8.1"
     59GCC_PATCHES="toolchain-gcc-4.8.1-targets.patch toolchain-gcc-4.8.1-headers.patch"
    5860GDB_VERSION="7.6.1"
     61GDB_PATCHES="toolchain-gdb-7.6.patch"
    5962
    6063BASEDIR="`pwd`"
     
    6265GCC="gcc-${GCC_VERSION}.tar.bz2"
    6366GDB="gdb-${GDB_VERSION}.tar.bz2"
     67
     68REAL_INSTALL=true
     69USE_HELENOS_TARGET=false
     70INSTALL_DIR="${BASEDIR}/PKG"
    6471
    6572#
     
    135142        echo
    136143        echo "Syntax:"
    137         echo " $0 <platform>"
     144        echo " $0 [--no-install] [--helenos-target] <platform>"
    138145        echo
    139146        echo "Possible target platforms are:"
     
    152159        echo " 2-way      same as 'all', but 2-way parallel"
    153160        echo
    154         echo "The toolchain will be installed to the directory specified by"
    155         echo "the CROSS_PREFIX environment variable. If the variable is not"
    156         echo "defined, /usr/local/cross will be used by default."
     161        echo "The toolchain is installed into directory specified by the"
     162        echo "CROSS_PREFIX environment variable. If the variable is not"
     163        echo "defined, /usr/local/cross/ is used as default."
     164        echo
     165        echo "If --no-install is present, the toolchain still uses the"
     166        echo "CROSS_PREFIX as the target directory but the installation"
     167        echo "copies the files into PKG/ subdirectory without affecting"
     168        echo "the actual root file system. That is only useful if you do"
     169        echo "not want to run the script under the super user."
     170        echo
     171        echo "The --helenos-target will build HelenOS-specific toolchain"
     172        echo "(i.e. it will use *-helenos-* triplet instead of *-linux-*)."
     173        echo "This toolchain is installed into /usr/local/cross-helenos by"
     174        echo "default. The settings can be changed by setting environment"
     175        echo "variable CROSS_HELENOS_PREFIX."
    157176        echo
    158177       
     
    292311}
    293312
     313patch_sources() {
     314        PATCH_FILE="$1"
     315        PATCH_STRIP="$2"
     316        DESC="$3"
     317       
     318        change_title "Patching ${DESC}"
     319        echo " >>> Patching ${DESC} with ${PATCH_FILE}"
     320       
     321        patch -t "-p${PATCH_STRIP}" <"$PATCH_FILE"
     322        check_error $? "Error patching ${DESC}."
     323}
     324
    294325prepare() {
    295326        show_dependencies
     
    306337}
    307338
     339set_target_from_platform() {
     340        case "$1" in
     341                "amd64")
     342                        LINUX_TARGET="amd64-linux-gnu"
     343                        HELENOS_TARGET="amd64-helenos"
     344                        ;;
     345                "arm32")
     346                        LINUX_TARGET="arm-linux-gnueabi"
     347                        HELENOS_TARGET="arm-helenos-gnueabi"
     348                        ;;
     349                "ia32")
     350                        LINUX_TARGET="i686-pc-linux-gnu"
     351                        HELENOS_TARGET="i686-pc-helenos"
     352                        ;;
     353                "ia64")
     354                        LINUX_TARGET="ia64-pc-linux-gnu"
     355                        HELENOS_TARGET="ia64-pc-helenos"
     356                        ;;
     357                "mips32")
     358                        LINUX_TARGET="mipsel-linux-gnu"
     359                        HELENOS_TARGET="mipsel-helenos"
     360                        ;;
     361                "mips32eb")
     362                        LINUX_TARGET="mips-linux-gnu"
     363                        HELENOS_TARGET="mips-helenos"
     364                        ;;
     365                "mips64")
     366                        LINUX_TARGET="mips64el-linux-gnu"
     367                        HELENOS_TARGET="mips64el-helenos"
     368                        ;;
     369                "ppc32")
     370                        LINUX_TARGET="ppc-linux-gnu"
     371                        HELENOS_TARGET="ppc-helenos"
     372                        ;;
     373                "ppc64")
     374                        LINUX_TARGET="ppc64-linux-gnu"
     375                        HELENOS_TARGET="ppc64-helenos"
     376                        ;;
     377                "sparc64")
     378                        LINUX_TARGET="sparc64-linux-gnu"
     379                        HELENOS_TARGET="sparc64-helenos"
     380                        ;;
     381                *)
     382                        check_error 1 "No target known for $1."
     383                        ;;
     384        esac
     385}
     386
    308387build_target() {
    309388        PLATFORM="$1"
    310         TARGET="$2"
     389        # This sets the *_TARGET variables
     390        set_target_from_platform "$PLATFORM"
     391        if $USE_HELENOS_TARGET; then
     392                TARGET="$HELENOS_TARGET"
     393        else
     394                TARGET="$LINUX_TARGET"
     395        fi
    311396       
    312397        WORKDIR="${BASEDIR}/${PLATFORM}"
     
    319404                CROSS_PREFIX="/usr/local/cross"
    320405        fi
    321        
    322         PREFIX="${CROSS_PREFIX}/${PLATFORM}"
     406        if [ -z "${CROSS_HELENOS_PREFIX}" ] ; then
     407                CROSS_HELENOS_PREFIX="/usr/local/cross-helenos"
     408        fi
     409       
     410        if $USE_HELENOS_TARGET; then
     411                PREFIX="${CROSS_HELENOS_PREFIX}/${PLATFORM}"
     412        else
     413                PREFIX="${CROSS_PREFIX}/${PLATFORM}"
     414        fi
    323415       
    324416        echo ">>> Downloading tarballs"
     
    328420       
    329421        echo ">>> Removing previous content"
    330         cleanup_dir "${PREFIX}"
     422        $REAL_INSTALL && cleanup_dir "${PREFIX}"
    331423        cleanup_dir "${WORKDIR}"
    332424       
    333         create_dir "${PREFIX}" "destination directory"
     425        $REAL_INSTALL && create_dir "${PREFIX}" "destination directory"
    334426        create_dir "${OBJDIR}" "GCC object directory"
    335427       
     
    344436        unpack_tarball "${BASEDIR}/${GDB}" "GDB"
    345437       
     438        echo ">>> Applying patches"
     439        for p in $BINUTILS_PATCHES; do
     440                patch_sources "${BASEDIR}/${p}" 0 "binutils"
     441        done
     442        for p in $GCC_PATCHES; do
     443                patch_sources "${BASEDIR}/${p}" 0 "GCC"
     444        done
     445        for p in $GDB_PATCHES; do
     446                patch_sources "${BASEDIR}/${p}" 0 "GDB"
     447        done
     448       
    346449        echo ">>> Processing binutils (${PLATFORM})"
    347450        cd "${BINUTILSDIR}"
     
    349452       
    350453        change_title "binutils: configure (${PLATFORM})"
    351         CFLAGS=-Wno-error ./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --disable-nls --disable-werror
     454        CFLAGS=-Wno-error ./configure \
     455                "--target=${TARGET}" \
     456                "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" \
     457                --disable-nls --disable-werror
    352458        check_error $? "Error configuring binutils."
    353459       
    354460        change_title "binutils: make (${PLATFORM})"
    355         make all install
    356         check_error $? "Error compiling/installing binutils."
     461        make all
     462        check_error $? "Error compiling binutils."
     463       
     464        change_title "binutils: install (${PLATFORM})"
     465        if $REAL_INSTALL; then
     466                make install
     467        else
     468                make install "DESTDIR=${INSTALL_DIR}"
     469        fi
     470        check_error $? "Error installing binutils."
     471       
    357472       
    358473        echo ">>> Processing GCC (${PLATFORM})"
     
    361476       
    362477        change_title "GCC: configure (${PLATFORM})"
    363         "${GCCDIR}/configure" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c,objc,c++,obj-c++ --disable-multilib --disable-libgcj --without-headers --disable-shared --enable-lto --disable-werror
     478        PATH="$PATH:${INSTALL_DIR}/${PREFIX}/bin" "${GCCDIR}/configure" \
     479                "--target=${TARGET}" \
     480                "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" \
     481                --with-gnu-as --with-gnu-ld --disable-nls --disable-threads \
     482                --enable-languages=c,objc,c++,obj-c++ \
     483                --disable-multilib --disable-libgcj --without-headers \
     484                --disable-shared --enable-lto --disable-werror
    364485        check_error $? "Error configuring GCC."
    365486       
    366487        change_title "GCC: make (${PLATFORM})"
    367         PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
    368         check_error $? "Error compiling/installing GCC."
     488        PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all-gcc
     489        check_error $? "Error compiling GCC."
     490       
     491        change_title "GCC: install (${PLATFORM})"
     492        if $REAL_INSTALL; then
     493                PATH="${PATH}:${PREFIX}/bin" make install-gcc
     494        else
     495                PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install-gcc "DESTDIR=${INSTALL_DIR}"
     496        fi
     497        check_error $? "Error installing GCC."
     498       
    369499       
    370500        echo ">>> Processing GDB (${PLATFORM})"
     
    373503       
    374504        change_title "GDB: configure (${PLATFORM})"
    375         ./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-"
     505        PATH="$PATH:${INSTALL_DIR}/${PREFIX}/bin" ./configure \
     506                "--target=${TARGET}" \
     507                "--prefix=${PREFIX}" "--program-prefix=${TARGET}-"
    376508        check_error $? "Error configuring GDB."
    377509       
    378510        change_title "GDB: make (${PLATFORM})"
    379         make all install
    380         check_error $? "Error compiling/installing GDB."
     511        PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all
     512        check_error $? "Error compiling GDB."
     513       
     514        change_title "GDB: make (${PLATFORM})"
     515        if $REAL_INSTALL; then
     516                PATH="${PATH}:${PREFIX}/bin" make install
     517        else
     518                PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install "DESTDIR=${INSTALL_DIR}"
     519        fi
     520        check_error $? "Error installing GDB."
     521       
    381522       
    382523        cd "${BASEDIR}"
     
    389530        echo ">>> Cross-compiler for ${TARGET} installed."
    390531}
     532
     533while [ "$#" -gt 1 ]; do
     534        case "$1" in
     535                --no-install)
     536                        REAL_INSTALL=false
     537                        shift
     538                        ;;
     539                --helenos-target)
     540                        USE_HELENOS_TARGET=true
     541                        shift
     542                        ;;
     543                *)
     544                        show_usage
     545                        ;;
     546        esac
     547done
    391548
    392549if [ "$#" -lt "1" ]; then
     
    395552
    396553case "$1" in
    397         "amd64")
     554        amd64|arm32|ia32|ia64|mips32|mips32eb|mips64|ppc32|ppc64|sparc64)
    398555                prepare
    399                 build_target "amd64" "amd64-linux-gnu"
    400                 ;;
    401         "arm32")
    402                 prepare
    403                 build_target "arm32" "arm-linux-gnueabi"
    404                 ;;
    405         "ia32")
    406                 prepare
    407                 build_target "ia32" "i686-pc-linux-gnu"
    408                 ;;
    409         "ia64")
    410                 prepare
    411                 build_target "ia64" "ia64-pc-linux-gnu"
    412                 ;;
    413         "mips32")
    414                 prepare
    415                 build_target "mips32" "mipsel-linux-gnu"
    416                 ;;
    417         "mips32eb")
    418                 prepare
    419                 build_target "mips32eb" "mips-linux-gnu"
    420                 ;;
    421         "mips64")
    422                 prepare
    423                 build_target "mips64" "mips64el-linux-gnu"
    424                 ;;
    425         "ppc32")
    426                 prepare
    427                 build_target "ppc32" "ppc-linux-gnu"
    428                 ;;
    429         "ppc64")
    430                 prepare
    431                 build_target "ppc64" "ppc64-linux-gnu"
    432                 ;;
    433         "sparc64")
    434                 prepare
    435                 build_target "sparc64" "sparc64-linux-gnu"
     556                build_target "$1"
    436557                ;;
    437558        "all")
    438559                prepare
    439                 build_target "amd64" "amd64-linux-gnu"
    440                 build_target "arm32" "arm-linux-gnueabi"
    441                 build_target "ia32" "i686-pc-linux-gnu"
    442                 build_target "ia64" "ia64-pc-linux-gnu"
    443                 build_target "mips32" "mipsel-linux-gnu"
    444                 build_target "mips32eb" "mips-linux-gnu"
    445                 build_target "mips64" "mips64el-linux-gnu"
    446                 build_target "ppc32" "ppc-linux-gnu"
    447                 build_target "ppc64" "ppc64-linux-gnu"
    448                 build_target "sparc64" "sparc64-linux-gnu"
     560                build_target "amd64"
     561                build_target "arm32"
     562                build_target "ia32"
     563                build_target "ia64"
     564                build_target "mips32"
     565                build_target "mips32eb"
     566                build_target "mips64"
     567                build_target "ppc32"
     568                build_target "ppc64"
     569                build_target "sparc64"
    449570                ;;
    450571        "parallel")
    451572                prepare
    452                 build_target "amd64" "amd64-linux-gnu" &
    453                 build_target "arm32" "arm-linux-gnueabi" &
    454                 build_target "ia32" "i686-pc-linux-gnu" &
    455                 build_target "ia64" "ia64-pc-linux-gnu" &
    456                 build_target "mips32" "mipsel-linux-gnu" &
    457                 build_target "mips32eb" "mips-linux-gnu" &
    458                 build_target "mips64" "mips64el-linux-gnu" &
    459                 build_target "ppc32" "ppc-linux-gnu" &
    460                 build_target "ppc64" "ppc64-linux-gnu" &
    461                 build_target "sparc64" "sparc64-linux-gnu" &
     573                build_target "amd64" &
     574                build_target "arm32" &
     575                build_target "ia32" &
     576                build_target "ia64" &
     577                build_target "mips32" &
     578                build_target "mips32eb" &
     579                build_target "mips64" &
     580                build_target "ppc32" &
     581                build_target "ppc64" &
     582                build_target "sparc64" &
    462583                wait
    463584                ;;
    464585        "2-way")
    465586                prepare
    466                 build_target "amd64" "amd64-linux-gnu" &
    467                 build_target "arm32" "arm-linux-gnueabi" &
     587                build_target "amd64" &
     588                build_target "arm32" &
    468589                wait
    469590               
    470                 build_target "ia32" "i686-pc-linux-gnu" &
    471                 build_target "ia64" "ia64-pc-linux-gnu" &
     591                build_target "ia32" &
     592                build_target "ia64" &
    472593                wait
    473594               
    474                 build_target "mips32" "mipsel-linux-gnu" &
    475                 build_target "mips32eb" "mips-linux-gnu" &
     595                build_target "mips32" &
     596                build_target "mips32eb" &
    476597                wait
    477598               
    478                 build_target "mips64" "mips64el-linux-gnu" &
    479                 build_target "ppc32" "ppc-linux-gnu" &
     599                build_target "mips64" &
     600                build_target "ppc32" &
    480601                wait
    481602               
    482                 build_target "ppc64" "ppc64-linux-gnu" &
    483                 build_target "sparc64" "sparc64-linux-gnu" &
     603                build_target "ppc64" &
     604                build_target "sparc64" &
    484605                wait
    485606                ;;
  • uspace/Makefile.common

    r39bcc99 rc2a6983  
    248248endif
    249249
     250ifeq ($(COMPILER),gcc_helenos)
     251        CFLAGS += $(GCC_CFLAGS) $(EXTRA_CFLAGS)
     252        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     253endif
     254
    250255ifeq ($(COMPILER),gcc_native)
    251256        CFLAGS += $(GCC_CFLAGS) $(EXTRA_CFLAGS)
  • uspace/lib/posix/Makefile

    r39bcc99 rc2a6983  
    4242FIXED_C_LIBRARY = libc4posix.a
    4343
    44 REDEFS_HIDE_LIBC = redefs-hide-libc.xargs
    45 REDEFS_SHOW_LIBPOSIX = redefs-show-posix.xargs
     44REDEFS_HIDE_LIBC = redefs-hide-libc-symbols.list
     45REDEFS_SHOW_LIBPOSIX = redefs-show-posix-symbols.list
    4646COLLISIONS_LIST = collisions.list
    4747
     
    6161        source/locale.c \
    6262        source/math.c \
     63        source/pthread/condvar.c \
     64        source/pthread/keys.c \
     65        source/pthread/mutex.c \
     66        source/pthread/threads.c \
    6367        source/pwd.c \
    6468        source/signal.c \
     
    8185
    8286$(FIXED_C_LIBRARY): $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
    83         ./tools/transform-symbols.sh \
    84                 $(OBJCOPY) $(AR) echo \
    85                 $(LIBC_FILE) $@ \
    86                 $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
     87        $(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBC_FILE) $@
     88        $(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
    8789
    8890$(FIXED_POSIX_LIBRARY): $(LIBRARY).a $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
    89         ./tools/transform-symbols.sh \
    90                 $(OBJCOPY) $(AR) echo \
    91                 $(LIBRARY).a $@ \
    92                 $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
     91        $(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBRARY).a $@
     92        $(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
    9393
    9494$(REDEFS_HIDE_LIBC): $(COLLISIONS_LIST)
    95         ./tools/create-redefines.sh "" "__helenos_libc_" <$(COLLISIONS_LIST) >$@
    96        
     95        sed 's/.*/& __helenos_libc_&/' <$(COLLISIONS_LIST) >$@
     96
    9797$(REDEFS_SHOW_LIBPOSIX): $(COLLISIONS_LIST)
    98         ./tools/create-redefines.sh "posix_" "" <$(COLLISIONS_LIST) >$@
     98        sed 's/.*/posix_& &/' <$(COLLISIONS_LIST) >$@
    9999
    100100$(COLLISIONS_LIST):
    101         ./tools/get-collision-list.sh ./include/posix >$@
     101        find ./include/posix -name '*.h' -exec \
     102                sed -n -e '/^#/d' -e 's/__POSIX_DEF__/\n&/gp' {} \; | \
     103                sed -n -e 's/__POSIX_DEF__(\([^)]*\)).*/\1/p' | \
     104                sort -u >$@
  • uspace/lib/posix/include/posix/float.h

    r39bcc99 rc2a6983  
    6161        #undef FLT_RADIX
    6262        #define FLT_RADIX __FLT_RADIX__
     63        #undef FLT_MIN
     64        #define FLT_MIN __FLT_MIN__
     65        #undef FLT_MAX
     66        #define FLT_MAX __FLT_MAX__
     67        #undef FLT_EPSILON
     68        #define FLT_EPSILON __FLT_EPSILON__
     69        #undef FLT_MANT_DIG
     70        #define FLT_MANT_DIG __FLT_MANT_DIG__
     71        #undef LDBL_MANT_DIG
     72        #define LDBL_MANT_DIG __LDBL_MANT_DIG__
    6373#else
    6474/* For something else than GCC, following definitions are provided.
  • uspace/lib/posix/include/posix/stdint.h

    r39bcc99 rc2a6983  
    108108
    109109
     110/*
     111 * Fast* and least* integer types.
     112 *
     113 * The definitions below are definitely safe if not the best.
     114 */
     115typedef uint8_t uint_least8_t;
     116typedef uint16_t uint_least16_t;
     117typedef uint32_t uint_least32_t;
     118typedef uint64_t uint_least64_t;
     119
     120typedef int8_t int_least8_t;
     121typedef int16_t int_least16_t;
     122typedef int32_t int_least32_t;
     123typedef int64_t int_least64_t;
     124
     125typedef uint8_t uint_fast8_t;
     126typedef uint16_t uint_fast16_t;
     127typedef uint32_t uint_fast32_t;
     128typedef uint64_t uint_fast64_t;
     129
     130typedef int8_t int_fast8_t;
     131typedef int16_t int_fast16_t;
     132typedef int32_t int_fast32_t;
     133typedef int64_t int_fast64_t;
     134
    110135#endif /* POSIX_STDINT_H_ */
    111136
  • uspace/lib/posix/include/posix/stdio.h

    r39bcc99 rc2a6983  
    123123
    124124extern void setvbuf(FILE *, void *, int, size_t);
    125 
     125extern void setbuf(FILE *, void *);
    126126
    127127/* POSIX specific stuff. */
  • uspace/lib/posix/include/posix/time.h

    r39bcc99 rc2a6983  
    104104extern char *__POSIX_DEF__(ctime_r)(const time_t *timer, char *buf);
    105105extern char *__POSIX_DEF__(ctime)(const time_t *timer);
     106extern time_t time(time_t *t);
    106107
    107108/* Clocks */
  • uspace/lib/posix/source/internal/common.h

    r39bcc99 rc2a6983  
    3939#include <stdlib.h>
    4040
    41 #define not_implemented() (fprintf(stderr, \
    42     "Function %s() in file %s at line %d is not implemented\n", \
    43     __func__, __FILE__, __LINE__), abort())
     41#define not_implemented() do { \
     42                static int __not_implemented_counter = 0; \
     43                if (__not_implemented_counter == 0) { \
     44                        fprintf(stderr, "%s() not implemented in %s:%d, something will NOT work.\n", \
     45                                __func__, __FILE__, __LINE__); \
     46                } \
     47                __not_implemented_counter++; \
     48        } while (0)
    4449
    4550/* A little helper macro to avoid typing this over and over. */
  • uspace/lib/posix/source/math.c

    r39bcc99 rc2a6983  
    4949        // TODO: low priority, just a compile-time dependency of binutils
    5050        not_implemented();
     51        return 0.0;
    5152}
    5253
     
    6162        // TODO: low priority, just a compile-time dependency of binutils
    6263        not_implemented();
     64        return 0.0;
    6365}
    6466
     
    7274        // TODO: Python dependency
    7375        not_implemented();
     76        return 0.0;
    7477}
    7578
     
    8487        // TODO: Python dependency
    8588        not_implemented();
     89        return 0.0;
    8690}
    8791
     
    9599        // TODO: Python dependency
    96100        not_implemented();
     101        return 0.0;
    97102}
    98103
     
    106111        // TODO: Python dependency
    107112        not_implemented();
     113        return 0.0;
    108114}
    109115
     
    118124        // TODO: Python dependency
    119125        not_implemented();
     126        return 0.0;
    120127}
    121128
     
    130137        // TODO: Python dependency
    131138        not_implemented();
     139        return 0.0;
    132140}
    133141
     
    141149        // TODO: Python dependency
    142150        not_implemented();
     151        return 0.0;
    143152}
    144153
     
    153162        // TODO: Python dependency
    154163        not_implemented();
     164        return 0.0;
    155165}
    156166
     
    164174        // TODO: Python dependency
    165175        not_implemented();
     176        return 0.0;
    166177}
    167178
     
    175186        // TODO: Python dependency
    176187        not_implemented();
     188        return 0.0;
    177189}
    178190
     
    186198        // TODO: Python dependency
    187199        not_implemented();
     200        return 0.0;
    188201}
    189202
  • uspace/lib/posix/source/stdlib.c

    r39bcc99 rc2a6983  
    6363        // TODO: low priority, just a compile-time dependency of binutils
    6464        not_implemented();
    65         return 1;
     65        return 0;
    6666}
    6767
  • uspace/lib/posix/source/unistd.c

    r39bcc99 rc2a6983  
    389389        // TODO: low priority, just a compile-time dependency of binutils
    390390        not_implemented();
     391        return -1;
    391392}
    392393
     
    399400        // TODO: low priority, just a compile-time dependency of binutils
    400401        not_implemented();
     402        return -1;
    401403}
    402404
     
    411413        // TODO: low priority, just a compile-time dependency of binutils
    412414        not_implemented();
     415        return -1;
    413416}
    414417
     
    423426        // TODO: low priority, just a compile-time dependency of binutils
    424427        not_implemented();
     428        return -1;
    425429}
    426430
     
    434438        // TODO: low priority, just a compile-time dependency of binutils
    435439        not_implemented();
     440        return -1;
    436441}
    437442
Note: See TracChangeset for help on using the changeset viewer.