Changeset ee820ff in mainline for uspace/lib


Ignore:
Timestamp:
2018-02-22T19:39:53Z (8 years ago)
Author:
Jenda <jenda.jzqk73@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0539c14
Parents:
5fe3f954 (diff), df368491 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge commit 'df368491aa1c0ce3024a51c602b7d0cbe4bd84d3'

Location:
uspace/lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/amd64/Makefile.common

    r5fe3f954 ree820ff  
    3131# XXX: clang doesn't support this flag, but the optimization is OS-specific,
    3232#      so it isn't used for amd64-unknown-elf target.
    33 GCC_CFLAGS += -mno-tls-direct-seg-refs
     33
     34ifneq ($(COMPILER),clang)
     35        COMMON_CFLAGS += -mno-tls-direct-seg-refs
     36endif
    3437
    3538LFLAGS += --gc-sections
  • uspace/lib/c/include/macros.h

    r5fe3f954 ree820ff  
    5555            | ((((uint64_t) (up)) & 0xffffffff) << 32))
    5656
    57 #ifndef member_to_inst
    5857#define member_to_inst(ptr_member, type, member_identif) \
    59         ((type*) (((void*)(ptr_member)) - ((void*)&(((type*)0)->member_identif))))
    60 #endif
     58        ((type *) (((void *) (ptr_member)) - \
     59            ((void *) &(((type *) 0)->member_identif))))
    6160
     61#define _paddname(line)     PADD_ ## line ## __
     62#define _padd(width, line)  uint ## width ## _t _paddname(line)
     63
     64#define PADD32  _padd(32, __LINE__)
     65#define PADD16  _padd(16, __LINE__)
     66#define PADD8   _padd(8, __LINE__)
    6267
    6368#endif
    6469
    65 #define _paddname(line) PADD_ ## line ## __
    66 #define _padd(width, line) uint ## width ## _t _paddname(line)
    67 #define PADD32 _padd(32, __LINE__)
    68 #define PADD16 _padd(16, __LINE__)
    69 #define PADD8 _padd(8, __LINE__)
    70 
    7170/** @}
    7271 */
  • uspace/lib/posix/Makefile

    r5fe3f954 ree820ff  
    4545        $(LIBSOFTINT_PREFIX)/libsoftint.a
    4646
     47SPECS = gcc.specs
     48LIBC_LINKER_SCRIPT = $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld
     49LIBC_STARTUP_FILE = $(shell sed -n -e 's/^.*STARTUP(\(.*\)).*$$/\1/p' $(LIBC_LINKER_SCRIPT))
     50EXPORT_LINKER_SCRIPT = link.ld
     51EXPORT_STARTUP_FILE = crt0.o
     52
     53EXPORT_FILES = \
     54        ../math/libmath.a \
     55        ../clui/libclui.a \
     56        $(MERGED_C_LIBRARY) \
     57        $(EXPORT_STARTUP_FILE) \
     58        $(EXPORT_LINKER_SCRIPT) \
     59        $(SPECS)
     60
    4761REDEFS_HIDE_LIBC = redefs-hide-libc-symbols.list
    4862
     
    5367        libc.o
    5468
    55 EXTRA_OUTPUT = $(FIXED_C_LIBRARY) $(FIXED_POSIX_LIBRARY) $(MERGED_C_LIBRARY)
     69EXTRA_OUTPUT = $(FIXED_C_LIBRARY) $(FIXED_POSIX_LIBRARY) $(MERGED_C_LIBRARY) $(SPECS) $(EXPORT_LINKER_SCRIPT) $(EXPORT_STARTUP_FILE)
    5670
    5771SOURCES = \
     
    8397        test/scanf.c
    8498
     99EXPORT_CPPFLAGS = \
     100        -specs $$(HELENOS_EXPORT_ROOT)/lib/gcc.specs \
     101        -isystem $$(HELENOS_EXPORT_ROOT)/include
     102
     103EXPORT_LDFLAGS = \
     104        -L$$(HELENOS_EXPORT_ROOT)/lib \
     105        -T link.ld
     106
     107EXPORT_LDLIBS = \
     108        -lmath -lc
     109
     110EXPORT_CFLAGS = \
     111        -specs $$(HELENOS_EXPORT_ROOT)/lib/gcc.specs
     112
    85113include $(USPACE_PREFIX)/Makefile.common
    86114
    87 $(INCLUDE_LIBC): ../c/include
    88         ln -s -f -n ../$^ $@
     115$(SPECS): $(CONFIG_MAKEFILE)
     116        echo '*self_spec:' > $@.new
     117        echo '+ $(COMMON_CFLAGS)' >> $@.new
     118        echo >> $@.new
     119        echo '*cpp:' >> $@.new
     120        echo '+ $(COMMON_CPPFLAGS)' >> $@.new
     121        echo >> $@.new
     122        echo '*lib:' >> $@.new
     123        echo '$(EXPORT_LDLIBS)' >> $@.new
     124        mv $@.new $@
     125
     126$(EXPORT_LINKER_SCRIPT): $(LIBC_LINKER_SCRIPT)
     127        sed 's/STARTUP(.*)/STARTUP(crt0.o)/' $< > $@
     128
     129$(EXPORT_STARTUP_FILE): $(LIBC_STARTUP_FILE)
     130        cp $< $@
     131
     132$(INCLUDE_LIBC): $(shell find ../c/include -name '*.h')
     133        cp -r -L --remove-destination -T ../c/include $@
     134        find ../c/include -type f -and -not -name '*.h' -delete
     135
     136export: $(EXPORT_DIR)/config.mk $(EXPORT_DIR)/config.rc
     137
     138$(EXPORT_DIR)/config.mk: export-libs export-includes
     139        echo '# Generated file, do not modify.' >> $@.new
     140        echo '# Do not forget to set HELENOS_EXPORT_ROOT.' >> $@.new
     141        echo 'HELENOS_CROSS_PATH="$(shell dirname $(CC))"' >> $@.new
     142        echo 'HELENOS_ARCH="$(firstword $(subst -, ,$(TARGET)))"' >> $@.new
     143        echo 'HELENOS_TARGET="$(TARGET)"' >> $@.new
     144        echo 'HELENOS_CPPFLAGS="$(EXPORT_CPPFLAGS)"' >> $@.new
     145        echo 'HELENOS_CFLAGS="$(EXPORT_CFLAGS)"' >> $@.new
     146        echo 'HELENOS_CXXFLAGS="$(EXPORT_CFLAGS)"' >> $@.new
     147        echo 'HELENOS_LDFLAGS="$(EXPORT_LDFLAGS)"' >> $@.new
     148        echo 'HELENOS_LDLIBS="$(EXPORT_LDLIBS)"' >> $@.new
     149        mv $@.new $@
     150
     151$(EXPORT_DIR)/config.rc: $(EXPORT_DIR)/config.mk
     152        sed 's:$$(HELENOS_EXPORT_ROOT):$$HELENOS_EXPORT_ROOT:g' < $< >$@
     153
     154export-libs: $(EXPORT_FILES) export-includes
     155        mkdir -p $(EXPORT_DIR)/lib
     156        cp -L $(EXPORT_FILES) $(EXPORT_DIR)/lib
     157
     158export-includes: $(INCLUDE_LIBC) $(shell find ./include ../c/arch/$(UARCH)/include $(ROOT_PATH)/abi/include -name '*.h')
     159        mkdir -p $(EXPORT_DIR)/include
     160        rm -rf $(EXPORT_DIR)/include.new
     161        cp -r -L -T ./include/posix $(EXPORT_DIR)/include.new
     162        cp -r -L -T ./include/libc $(EXPORT_DIR)/include.new/libc
     163        cp -r -L ../c/arch/$(UARCH)/include/* $(EXPORT_DIR)/include.new/libc
     164        cp -r -L $(ROOT_PATH)/abi/include/* $(EXPORT_DIR)/include.new
     165        mkdir -p $(EXPORT_DIR)/include.new/libclui
     166        cp -L ../clui/tinput.h $(EXPORT_DIR)/include.new/libclui
     167       
     168        find "$(EXPORT_DIR)/include.new/libc" "$(EXPORT_DIR)/include.new/libclui" -name '*.h' -exec sed \
     169                -e 's:#include <:#include <libc/:' \
     170                -e 's:#include <libc/abi/:#include <abi/:' \
     171                -e 's:#include <libc/_bits/:#include <_bits/:' \
     172                -e 's:#include <libc/libc/:#include <libc/:' \
     173                -i {} \;
     174        find "$(EXPORT_DIR)/include.new" -name '*.h' -exec sed \
     175                -e 's:#include "posix/:#include ":' \
     176                -e 's:#include <posix/:#include <:' \
     177                -i {} \;
     178       
     179        rm -rf $(EXPORT_DIR)/include
     180        mv $(EXPORT_DIR)/include.new $(EXPORT_DIR)/include
    89181
    90182$(FIXED_C_LIBRARY): $(LIBC_FILE) $(REDEFS_HIDE_LIBC)
     
    97189$(REDEFS_HIDE_LIBC): $(SOURCES)
    98190        sed -n -e 's/_HIDE_LIBC_SYMBOL(\(.*\))/\1 __helenos_libc_\1/p' $(SOURCES) >$@
    99 
Note: See TracChangeset for help on using the changeset viewer.