Mercurial > ecos
changeset 12:4cc3eff958ab ecos-sw-1999-06-04
Merge from eCos master repository on 1999-06-04-22:24:56-BST
line wrap: on
line diff
--- a/packages/ChangeLog +++ b/packages/ChangeLog @@ -1,3 +1,13 @@ +1999-06-04 Gary Thomas <gthomas@cygnus.co.uk> + + * pkgconf.tcl (command_prefix): Allow command_prefix to be overridden + on a per-platform basis. + +1999-06-03 Gary Thomas <gthomas@cygnus.co.uk> + + * pkgconf.tcl: Support 'base_platform' in target specification. This + performs the inverse of what the "platform" entry in CDL options does. + 1999-05-26 Jesper Skov <jskov@cygnus.co.uk> * NEWS: Added Kernel/Debugging entry.
new file mode 100644 --- /dev/null +++ b/packages/NEWS @@ -0,0 +1,77 @@ +* Will be new in eCos 1.3 + +** Target side platforms + +*** These are the eCos 1.2.1 platforms... + +**** ARM: + ARM7TDMI - ARM PID7T board + Sharp LH77790 (ARM7DI core) - ARM AEB-1 board + +**** Fujitsu SPARClite: + MB86831, MB86832, MB86833 - Fujitsu MB86800-MA01 board + SIS - SPARClite simulator + +**** Matsushita MN10300: + MN103002 - standard evaluation board + MN103002 - standard evaluation board simulator + +**** Toshiba TX39 (MIPS R3900 derivative): + TX39 - JMR3904 evaluation board + TX39 - JMR3904 evaluation board simulator + +**** MPC800 PowerPC: + MPC823 - Cogent CMA287-23 + MPC850 - Cogent CMA287-50 + MPC860 - Cogent CMA286-60 + MPC860 - MPC8xxFADS (NB unsupported by Cygnus, + contributed by Kevin Hester) + MPC823, MPC850, MPC860 - PSIM simulator + +**** i386/Linux synthetic target + +*** The following are the new target platforms... + + + + +** Host side platforms + +*** These are the eCos 1.2.1 platforms.... +**** Redhat Linux 4.2 and later +**** Solaris 2.5.1 and later +**** Windows NT 4.0SP3 and later +**** Windows 95/98 (Beta) + +*** These are the new host platforms... + +**** FIXME + +** Host tool features + +**** FIXME + +** New toolchain features + +** API additions (are there any?) + +*** FIXME + +** API changes + +*** Kernel + +**** Debugging + The file <cyg/kernel/test/stackmon.h> defines some functions + that can be used to profile stack usage. + +**** KAPI + include/kapi.h (cyg_thread_delete): is now a boolean function to + indicate success. Failure is when the thread needs to run in + order to become killed. + +** ISO C library + +** HAL changes + +*** Common
--- a/packages/hal/common/current/ChangeLog +++ b/packages/hal/common/current/ChangeLog @@ -1,3 +1,7 @@ +1999-05-31 Jesper Skov <jskov@cygnus.co.uk> + + * src/hal_stub.c: Respect HAL_BREAKINST_SIZE setting. + 1999-05-28 Nick Garnett <nickg@cygnus.co.uk> * src/hal_stub.c (initHardware): Added call to
--- a/packages/hal/common/current/src/hal_stub.c +++ b/packages/hal/common/current/src/hal_stub.c @@ -117,7 +117,13 @@ void #ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT -typedef unsigned long t_inst; +#if (HAL_BREAKINST_SIZE == 2) +typedef cyg_uint16 t_inst; +#elif (HAL_BREAKINST_SIZE == 4) +typedef cyg_uint32 t_inst; +#else +#error "Don't know how to handle that size" +#endif typedef struct {
--- a/packages/hal/mips/arch/current/ChangeLog +++ b/packages/hal/mips/arch/current/ChangeLog @@ -1,3 +1,9 @@ +1999-06-02 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * src/hal_misc.c (cyg_hal_invoke_constructors): + Rework for new constructor scheme for new compilers. Should work + with old compilers too. + 1999-05-28 Nick Garnett <nickg@cygnus.co.uk> * src/vectors.S:
--- a/packages/hal/mips/arch/current/src/hal_misc.c +++ b/packages/hal/mips/arch/current/src/hal_misc.c @@ -147,41 +147,28 @@ cyg_bool cyg_hal_stop_constructors; typedef void (*pfunc) (void); extern pfunc __CTOR_LIST__[]; +extern pfunc __CTOR_END__[]; void cyg_hal_invoke_constructors(void) { -#if 0 - -#else - - pfunc p; - #ifdef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG - static long i = 0; - long j = (long)(__CTOR_LIST__[0]); + static pfunc *p = &__CTOR_END__[-1]; - cyg_hal_stop_constructors=0; - for ( ; i < j; i++ ) - { - p = __CTOR_LIST__[j - i]; - p (); + cyg_hal_stop_constructors = 0; + for (; p >= __CTOR_LIST__; p--) { + (*p) (); if (cyg_hal_stop_constructors) { - i++; + p--; break; } } #else - long i = (long)(__CTOR_LIST__[0]); - - for ( ; i > 0; i-- ) - { - p = __CTOR_LIST__[i]; - p (); - } + pfunc *p; + + for (p = &__CTOR_END__[-1]; p >= __CTOR_LIST__; p--) + (*p) (); #endif - -#endif } // cyg_hal_invoke_constructors()
--- a/packages/hal/mips/jmr3904/current/ChangeLog +++ b/packages/hal/mips/jmr3904/current/ChangeLog @@ -1,3 +1,11 @@ +1999-06-02 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * include/pkgconf/mlt_mips_tx39_jmr3904_rom.mlt: + * include/pkgconf/mlt_mips_tx39_jmr3904_rom.mlt: + * include/pkgconf/mlt_mips_tx39_jmr3904_ram.ldi: + * include/pkgconf/mlt_mips_tx39_jmr3904_rom.ldi: + Use ctors/dtors sections as required by new compilers + 1999-05-27 Nick Garnett <nickg@cygnus.co.uk> * src/plf_misc.c: Reorganized and generally fixed up Ctrl-C
--- a/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_ram.ldi +++ b/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_ram.ldi @@ -37,6 +37,8 @@ SECTIONS SECTION_rom_vectors (ram, 0x80008000, LMA_EQ_VMA) SECTION_text (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_fini (ram, ALIGN (0x1), LMA_EQ_VMA) + SECTION_ctors (ram, ALIGN (0x1), LMA_EQ_VMA) + SECTION_dtors (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_rodata (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_rodata1 (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_fixup (ram, ALIGN (0x1), LMA_EQ_VMA)
--- a/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_ram.mlt +++ b/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_ram.mlt @@ -2,7 +2,9 @@ version 0 region ram 80008000 78000 0 ! section rom_vectors 0 1 0 1 1 1 1 1 80008000 80008000 text text ! section text 0 1 0 1 0 1 0 1 fini fini ! -section fini 0 1 0 1 0 1 0 1 rodata rodata ! +section fini 0 1 0 1 0 1 0 1 ctors ctors ! +section ctors 0 1 0 1 0 1 0 1 dtors dtors ! +section dtors 0 1 0 1 0 1 0 1 rodata rodata ! section rodata 0 1 0 1 0 1 0 1 rodata1 rodata1 ! section rodata1 0 1 0 1 0 1 0 1 fixup fixup ! section fixup 0 1 0 1 0 1 0 1 rel.dyn rel.dyn !
--- a/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_rom.ldi +++ b/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_rom.ldi @@ -38,6 +38,8 @@ SECTIONS SECTION_rom_vectors (rom, 0xbfc00000, LMA_EQ_VMA) SECTION_text (rom, ALIGN (0x1), LMA_EQ_VMA) SECTION_fini (rom, ALIGN (0x1), LMA_EQ_VMA) + SECTION_ctors (rom, ALIGN (0x1), LMA_EQ_VMA) + SECTION_dtors (rom, ALIGN (0x1), LMA_EQ_VMA) SECTION_rodata (rom, ALIGN (0x1), LMA_EQ_VMA) SECTION_rodata1 (rom, ALIGN (0x1), LMA_EQ_VMA) SECTION_fixup (rom, ALIGN (0x1), LMA_EQ_VMA)
--- a/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_rom.mlt +++ b/packages/hal/mips/jmr3904/current/include/pkgconf/mlt_mips_tx39_jmr3904_rom.mlt @@ -5,7 +5,9 @@ section data 0 1 1 1 1 1 0 0 80000200 bs section bss 0 4 0 1 0 0 0 0 ! section rom_vectors 0 1 0 1 1 1 1 1 bfc00000 bfc00000 text text ! section text 0 1 0 1 0 1 0 1 fini fini ! -section fini 0 1 0 1 0 1 0 1 rodata rodata ! +section fini 0 1 0 1 0 1 0 1 ctors ctors ! +section ctors 0 1 0 1 0 1 0 1 dtors dtors ! +section dtors 0 1 0 1 0 1 0 1 rodata rodata ! section rodata 0 1 0 1 0 1 0 1 rodata1 rodata1 ! section rodata1 0 1 0 1 0 1 0 1 fixup fixup ! section fixup 0 1 0 1 0 1 0 1 rel.dyn rel.dyn !
--- a/packages/hal/mips/sim/current/ChangeLog +++ b/packages/hal/mips/sim/current/ChangeLog @@ -1,3 +1,9 @@ +1999-06-02 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * include/pkgconf/mlt_mips_tx39_sim_ram.ldi: + * include/pkgconf/mlt_mips_tx39_sim_ram.mlt: + Add support for ctors/dtors sections required by new compiler + 1999-05-20 Gary Thomas <gthomas@cygnus.co.uk> * include/pkgconf/hal_mips_sim.h: Move RTC setup here.
--- a/packages/hal/mips/sim/current/include/pkgconf/mlt_mips_tx39_sim_ram.ldi +++ b/packages/hal/mips/sim/current/include/pkgconf/mlt_mips_tx39_sim_ram.ldi @@ -37,6 +37,8 @@ SECTIONS SECTION_rom_vectors (ram, 0x80000000, LMA_EQ_VMA) SECTION_text (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_fini (ram, ALIGN (0x1), LMA_EQ_VMA) + SECTION_ctors (ram, ALIGN (0x1), LMA_EQ_VMA) + SECTION_dtors (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_rodata (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_vsr_table (ram, ALIGN (0x1), LMA_EQ_VMA) SECTION_rodata1 (ram, ALIGN (0x1), LMA_EQ_VMA)
--- a/packages/hal/mips/sim/current/include/pkgconf/mlt_mips_tx39_sim_ram.mlt +++ b/packages/hal/mips/sim/current/include/pkgconf/mlt_mips_tx39_sim_ram.mlt @@ -2,7 +2,9 @@ version 0 region ram 80000000 80000 0 ! section rom_vectors 0 1 0 1 1 1 1 1 80000000 80000000 text text ! section text 0 1 0 1 0 1 0 1 fini fini ! -section fini 0 1 0 1 0 1 0 1 rodata rodata ! +section fini 0 1 0 1 0 1 0 1 ctors ctors ! +section ctors 0 1 0 1 0 1 0 1 dtors dtors ! +section dtors 0 1 0 1 0 1 0 1 rodata rodata ! section rodata 0 1 0 1 0 1 0 1 vsr_table vsr_table ! section vsr_table 0 1 0 1 0 1 0 1 rodata1 rodata1 ! section rodata1 0 1 0 1 0 1 0 1 fixup fixup !
--- a/packages/hal/mips/tx39/current/ChangeLog +++ b/packages/hal/mips/tx39/current/ChangeLog @@ -1,3 +1,9 @@ +1999-06-02 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * src/mips_tx39.ld: + Add .ctors and .dtors sections as required by new compilers, but + keep around old SORT(CONSTRUCTORS) for use by old compilers. + 1999-05-27 Nick Garnett <nickg@cygnus.co.uk> * src/hal_diag.c (hal_diag_write_char): Tidied away defunct code
--- a/packages/hal/mips/tx39/current/src/mips_tx39.ld +++ b/packages/hal/mips/tx39/current/src/mips_tx39.ld @@ -79,6 +79,24 @@ GROUP(libtarget.a libgcc.a) { FORCE_OUTPUT; *(.fini) } \ > _region_ +#define SECTION_ctors(_region_, _vma_, _lma_) \ + .ctors _vma_ : _lma_ \ + { \ + __CTOR_LIST__ = ABSOLUTE (.); \ + KEEP(*(.ctors)) \ + KEEP(*(SORT(.ctors.*))) \ + __CTOR_END__ = ABSOLUTE (.); \ + } > _region_ + +#define SECTION_dtors(_region_, _vma_, _lma_) \ + .dtors _vma_ : _lma_ \ + { \ + __DTOR_LIST__ = ABSOLUTE (.); \ + KEEP(*(SORT(.dtors.*))) \ + KEEP(*(.dtors)) \ + __DTOR_END__ = ABSOLUTE (.); \ + } > _region_ + #define SECTION_rodata(_region_, _vma_, _lma_) \ .rodata _vma_ : _lma_ \ { FORCE_OUTPUT; *(.rodata*) } \ @@ -109,6 +127,9 @@ GROUP(libtarget.a libgcc.a) { FORCE_OUTPUT; *(.gcc_except_table) } \ > _region_ +/* FIXME: The SORT(CONSTRUCTORS) line below is for backwards compatibility + * with older (pre-99r1) toolchains + */ #define SECTION_data(_region_, _vma_, _lma_) \ .data _vma_ : _lma_ \ { __ram_data_start = ABSOLUTE (.); \ @@ -116,7 +137,7 @@ GROUP(libtarget.a libgcc.a) _GOT1_START_ = ABSOLUTE (.); *(.got1) _GOT1_END_ = ABSOLUTE (.); \ _GOT2_START_ = ABSOLUTE (.); *(.got2) _GOT2_END_ = ABSOLUTE (.); \ . = ALIGN (8); \ - SORT (CONSTRUCTORS) *(.ctors*) *(.dtors*) \ + SORT (CONSTRUCTORS) \ . = ALIGN (8); \ __DEVTAB__ = ABSOLUTE (.); KEEP (*(SORT (.devtab*))) __DEVTAB_END__ = ABSOLUTE (.); \ . = ALIGN (8); \
--- a/packages/hal/powerpc/arch/current/ChangeLog +++ b/packages/hal/powerpc/arch/current/ChangeLog @@ -1,3 +1,8 @@ +1999-06-04 Jesper Skov <jskov@cygnus.co.uk> + PR 20146 + * src/ppc_860.h: Added padding to some structures, reported by + Jean-Dominique Orvoen (orvoen@email.enst.fr) + 1999-05-26 Jesper Skov <jskov@cygnus.co.uk> * include/hal_cache.h (HAL_DCACHE_LOCK):
--- a/packages/hal/powerpc/arch/current/src/ppc_860.h +++ b/packages/hal/powerpc/arch/current/src/ppc_860.h @@ -562,6 +562,8 @@ struct spi_pram cyg_uint16 tbptr; /* Tx BD pointer */ cyg_uint16 tcount; /* Tx byte count */ cyg_uint32 ttemp; /* Tx temp */ + + cyg_uint8 RESERVED12[8]; /* Reserved */ }; @@ -591,8 +593,20 @@ struct i2c_pram cyg_uint16 tbptr; /* Tx BD pointer */ cyg_uint16 tcount; /* Tx byte count */ cyg_uint32 ttemp; /* Tx temp */ + + cyg_uint8 RESERVED13[8]; }; +/*--------------------------------------------------------------------------*/ +/* MISC parameter RAM */ +/*--------------------------------------------------------------------------*/ + +struct misc_pram +{ + cyg_uint8 RESERVED14[16]; +}; + + /*--------------------------------------------------------------------------*/ /* PIP Centronics parameter RAM */ @@ -1143,6 +1157,7 @@ typedef struct eppc { struct i2c_pram i2c; /* I2C */ + struct misc_pram misc; /* MISC */ struct idma_pram idma1; /* IDMA1 */ } i2c_idma;
--- a/packages/hal/sparclite/arch/current/ChangeLog +++ b/packages/hal/sparclite/arch/current/ChangeLog @@ -1,3 +1,14 @@ +1999-06-03 Hugo Tyson <hmt@cygnus.co.uk> + + * src/hal_boot.c: Add a dummy __gccmain() to prevent ctors being + called twice. This seems to be a recent compiler change: + [from gcc/ChangeLog] + Sat May 22 18:18:43 1999 Jason Merrill <jason@yorick.cygnus.com> + * sparc/liteelf.h: Handle ctors like MIPS crosses. + * sparc/lite.h (STARTFILE_SPEC, LIB_SPEC): Define to "". + * configure.in: Don't use libgloss.h on sparclite-elf. + Use collect2 on sparclite-aout. + 1999-05-20 Hugo Tyson <hmt@cygnus.co.uk> * include/hal_intr.h (HAL_INTERRUPT_STACK_CALL_PENDING_DSRS):
--- a/packages/hal/sparclite/arch/current/src/hal_boot.c +++ b/packages/hal/sparclite/arch/current/src/hal_boot.c @@ -107,9 +107,9 @@ cyg_hal_invoke_constructors (void) #endif } -// Override any __eabi the compiler might generate. We don't want +// Override any __gccmain the compiler might generate. We don't want // constructors to be called twice. -void __eabi (void) {} +void __gccmain(void) {} /*------------------------------------------------------------------------*/ /* CYG_HAL_START - pre-main-entrypoint */
--- a/packages/io/serial/current/ChangeLog +++ b/packages/io/serial/current/ChangeLog @@ -12,7 +12,6 @@ 1999-05-27 Jonathan Larmour <jlarmour@ Fix for PR 20047 - 1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk> * tests/ser_test_protocol.inl: @@ -23,7 +22,6 @@ 1999-05-25 Jonathan Larmour <jlarmour@ * src/PKGconf.mak (EXTRAS_COMPILE): Change CYG_HAL_TX39 to CYG_HAL_MIPS_TX39 - 1999-05-18 Jesper Skov <jskov@cygnus.co.uk> PR 19926 * src/sparclite/sleb_sdtr.c (sleb_sdtr_rx_DSR): Only read chan if
--- a/packages/kernel/current/tests/PKGconf.mak +++ b/packages/kernel/current/tests/PKGconf.mak @@ -48,7 +48,5 @@ ifndef CYGPKG_HAL_ARM_AEB TESTS += stress_threads endif + include $(COMPONENT_REPOSITORY)/pkgconf/makrules.tst - - -
--- a/packages/language/c/libm/current/ChangeLog +++ b/packages/language/c/libm/current/ChangeLog @@ -1,3 +1,19 @@ +1999-06-04 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * src/PKGconf.mak: + Only use -fno-strict-aliasing if we have enough a recent toolchain + +1999-06-03 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * src/PKGconf.mak: + Finally found the option to do the right workaround: + -fno-strict-aliasing + +1999-06-02 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * src/PKGconf.mak (SPECIAL_FLAGS): Don't use -fschedule-insns[2] on + mn10300 + 1999-05-27 Jonathan Larmour <jlarmour@cygnus.co.uk> * src/PKGconf.mak (SPECIAL_FLAGS): Add workaround flags for new
--- a/packages/language/c/libm/current/src/PKGconf.mak +++ b/packages/language/c/libm/current/src/PKGconf.mak @@ -73,66 +73,12 @@ OTHER_CLEAN := # Work-around for PR 19698 -SPECIAL_FLAGS := -O1 -fschedule-insns -fschedule-insns2 -fexpensive-optimizations -fstrength-reduce -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop - -ifdef CYG_HAL_SPARCLITE -SPECIAL_FLAGS += -fdelayed-branch -endif -ifdef CYG_HAL_MIPS_TX39 -SPECIAL_FLAGS += -fdelayed-branch -endif -ifdef CYG_HAL_POWERPC -SPECIAL_FLAGS += -fdelayed-branch +ifdef CYGPKG_HAL_ARM +RECENT_TOOLCHAIN=1 endif -s_atan.c-CFLAGS += $(SPECIAL_FLAGS) -s_ceil.c-CFLAGS += $(SPECIAL_FLAGS) -s_copysign.c-CFLAGS += $(SPECIAL_FLAGS) -s_cos.c-CFLAGS += $(SPECIAL_FLAGS) -s_expm1.c-CFLAGS += $(SPECIAL_FLAGS) -s_fabs.c-CFLAGS += $(SPECIAL_FLAGS) -s_finite.c-CFLAGS += $(SPECIAL_FLAGS) -s_floor.c-CFLAGS += $(SPECIAL_FLAGS) -s_frexp.c-CFLAGS += $(SPECIAL_FLAGS) -s_isnan.c-CFLAGS += $(SPECIAL_FLAGS) -s_ldexp.c-CFLAGS += $(SPECIAL_FLAGS) -s_rint.c-CFLAGS += $(SPECIAL_FLAGS) -s_scalbn.c-CFLAGS += $(SPECIAL_FLAGS) -s_sin.c-CFLAGS += $(SPECIAL_FLAGS) -s_tan.c-CFLAGS += $(SPECIAL_FLAGS) -s_modf.c-CFLAGS += $(SPECIAL_FLAGS) -s_tanh.c-CFLAGS += $(SPECIAL_FLAGS) -s_asinh.c-CFLAGS += $(SPECIAL_FLAGS) -s_cbrt.c-CFLAGS += $(SPECIAL_FLAGS) -s_erf.c-CFLAGS += $(SPECIAL_FLAGS) -s_ilogb.c-CFLAGS += $(SPECIAL_FLAGS) -s_log1p.c-CFLAGS += $(SPECIAL_FLAGS) -s_logb.c-CFLAGS += $(SPECIAL_FLAGS) -s_nextafter.c-CFLAGS += $(SPECIAL_FLAGS) -s_significand.c-CFLAGS += $(SPECIAL_FLAGS) -e_fmod.c-CFLAGS += $(SPECIAL_FLAGS) -w_fmod.c-CFLAGS += $(SPECIAL_FLAGS) -e_acos.c-CFLAGS += $(SPECIAL_FLAGS) -e_acosh.c-CFLAGS += $(SPECIAL_FLAGS) -e_asin.c-CFLAGS += $(SPECIAL_FLAGS) -e_atan2.c-CFLAGS += $(SPECIAL_FLAGS) -e_atanh.c-CFLAGS += $(SPECIAL_FLAGS) -e_cosh.c-CFLAGS += $(SPECIAL_FLAGS) -e_exp.c-CFLAGS += $(SPECIAL_FLAGS) -e_fmod.c-CFLAGS += $(SPECIAL_FLAGS) -e_hypot.c-CFLAGS += $(SPECIAL_FLAGS) -e_j0.c-CFLAGS += $(SPECIAL_FLAGS) -e_j1.c-CFLAGS += $(SPECIAL_FLAGS) -e_jn.c-CFLAGS += $(SPECIAL_FLAGS) -e_lgamma_r.c-CFLAGS += $(SPECIAL_FLAGS) -e_log.c-CFLAGS += $(SPECIAL_FLAGS) -e_log10.c-CFLAGS += $(SPECIAL_FLAGS) -e_pow.c-CFLAGS += $(SPECIAL_FLAGS) -e_rem_pio2.c-CFLAGS += $(SPECIAL_FLAGS) -e_remainder.c-CFLAGS += $(SPECIAL_FLAGS) -e_sinh.c-CFLAGS += $(SPECIAL_FLAGS) -e_sqrt.c-CFLAGS += $(SPECIAL_FLAGS) -k_cos.c-CFLAGS += $(SPECIAL_FLAGS) -k_tan.c-CFLAGS += $(SPECIAL_FLAGS) +ifeq ($(RECENT_TOOLCHAIN),1) +CFLAGS += -fno-strict-aliasing +endif include $(COMPONENT_REPOSITORY)/pkgconf/makrules.src
--- a/packages/pkgconf.tcl +++ b/packages/pkgconf.tcl @@ -1160,7 +1160,12 @@ proc pkgconf::read_targets { } { } proc command_prefix { str } { - set_target_data "$::current_target,prefix" $str + # Allow the command prefix to be overridden on a per-platform basis + if { $::current_platform != "" } { + set_target_data "$::current_target,$::current_platform,prefix" $str + } else { + set_target_data "$::current_target,prefix" $str + } } proc packages { list } { @@ -1179,6 +1184,14 @@ proc pkgconf::read_targets { } { } } + proc base_platform { str } { + if { $::current_platform != "" } { + set_target_data "$::current_target,$::current_platform,base_platform" $str + } else { + set_target_data "$::current_target,base_platform" $str + } + } + proc platform { name body } { add_known_platform $::current_target $name @@ -1511,6 +1524,24 @@ proc pkgconf::get_default_platform { tar return $platform } +proc pkgconf::get_base_platform { target platform } { + + ASSERT { $target != "" } + ASSERT { $platform != "" } + + set target [find_target $target] + ASSERT { $target != "" } + set platform [find_platform $target $platform] + ASSERT { $platform != "" } + + if [info exists pkgconf::target_data($target,$platform,base_platform) ] { + set base_platform [lindex $pkgconf::target_data($target,$platform,base_platform) 0] + } else { + set base_platform $platform + } + return $base_platform +} + proc pkgconf::get_default_startup { target platform } { ASSERT { $target != "" } @@ -1550,6 +1581,7 @@ proc pkgconf::setup_defaults { } { set pkgconf::config_data(target) "" set pkgconf::config_data(platform) "" + set pkgconf::config_data(base_platform) "" set pkgconf::config_data(startup) "" set pkgconf::config_data(prefix) "" set pkgconf::config_data(use_links) 0 @@ -1590,6 +1622,7 @@ proc pkgconf::setup_defaults { } { ASSERT { $pkgconf::target_data($pkgconf::config_data(target),known_platforms) != "" } set pkgconf::config_data(platform) [get_default_platform $pkgconf::config_data(target)] + set pkgconf::config_data(base_platform) [get_base_platform $pkgconf::config_data(target) $pkgconf::config_data(platform)] ASSERT { $pkgconf::target_data($pkgconf::config_data(target),$pkgconf::config_data(platform),startup) != "" } set pkgconf::config_data(startup) [get_default_startup $pkgconf::config_data(target) $pkgconf::config_data(platform)] @@ -1670,6 +1703,7 @@ proc pkgconf::read_save_file { } { set pkgconf::saved_data(target) $target_name set pkgconf::config_data(target) $target_name set pkgconf::config_data(platform) [get_default_platform $pkgconf::config_data(target)] + set pkgconf::config_data(base_platform) [get_base_platform $pkgconf::config_data(target) $pkgconf::config_data(platform)] set pkgconf::config_data(startup) \ [get_default_startup $pkgconf::config_data(target) $pkgconf::config_data(platform)] } @@ -1690,6 +1724,7 @@ The platform $pkgconf::config_data(platf } else { set pkgconf::saved_data(platform) $platform_name set pkgconf::config_data(platform) $platform_name + set pkgconf::config_data(base_platform) [get_base_platform $pkgconf::config_data(target) $pkgconf::saved_data(platform)] set pkgconf::config_data(startup) [get_default_startup $pkgconf::config_data(target) $platform_name] } @@ -1865,6 +1900,10 @@ proc pkgconf::write_save_file { } { puts $open_file "set_saved_data platform $pkgconf::config_data(platform)" set pkgconf::saved_data(platform) $pkgconf::config_data(platform) } + if { $pkgconf::config_data(base_platform) != "" } { + puts $open_file "set_saved_data base_platform $pkgconf::config_data(base_platform)" + set pkgconf::saved_data(base_platform) $pkgconf::config_data(base_platform) + } if { $pkgconf::config_data(startup) != "" } { puts $open_file "set_saved_data startup $pkgconf::config_data(startup)" set pkgconf::saved_data(startup) $pkgconf::config_data(startup) @@ -1990,6 +2029,7 @@ proc pkgconf::process_arguments { } { if { $platform != "" } { set platform [find_platform $target $platform] set pkgconf::config_data(platform) $platform + set pkgconf::config_data(base_platform) [get_base_platform $target $platform] if { ($platform != "") && ($startup != "") } { if { [lsearch -exact $pkgconf::target_data($target,$platform,startup) $startup] == -1 } { set startup "" @@ -2022,6 +2062,8 @@ proc pkgconf::process_arguments { } { set pkgconf::config_data(platform) $platform } + set pkgconf::config_data(base_platform) [get_base_platform $target $platform] + if { ($target != "") && ($platform != "") && ($pkgconf::startup_arg != "" ) } { if { [lsearch -exact $pkgconf::target_data($target,$platform,startup) $pkgconf::startup_arg] == -1 } { @@ -3041,6 +3083,7 @@ proc pkgconf::nbpage_targets_leave { win set config_data(target) [lindex $target_page_data(selection) 0] set config_data(platform) [lindex $target_page_data(selection) 1] + set config_data(base_platform) [get_base_platform $config_data(target) $config_data(platform)] set config_data(startup) [lindex $target_page_data(selection) 2] set build_tree_needs_update 1 @@ -5437,7 +5480,12 @@ proc pkgconf::produce_misc_files { } { # and hence the default. puts $file "\ndefault: build\n" - set command_prefix $pkgconf::target_data($pkgconf::config_data(target),prefix) + set platform $pkgconf::config_data(platform) + if [info exists pkgconf::target_data($pkgconf::config_data(target),$platform,prefix)] { + set command_prefix $pkgconf::target_data($pkgconf::config_data(target),$platform,prefix) + } else { + set command_prefix $pkgconf::target_data($pkgconf::config_data(target),prefix) + } puts $file "" puts $file "COMPONENT_REPOSITORY\t\t:= [get_pathname_for_make $pkgconf::component_repository]" @@ -5447,6 +5495,7 @@ proc pkgconf::produce_misc_files { } { # per-target files. puts $file "TARGET\t\t\t\t:= $pkgconf::config_data(target)" puts $file "PLATFORM\t\t\t:= $pkgconf::config_data(platform)" + puts $file "BASE_PLATFORM\t\t\t:= $pkgconf::config_data(base_platform)" puts $file "STARTUP\t\t\t\t:= $pkgconf::config_data(startup)" # The prefix (i.e. install directory) should default to somewhere @@ -5558,13 +5607,13 @@ endif" # Additions for the MLT puts $file "\n" - puts $file "#define CYGHWR_MEMORY_LAYOUT_LDI <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(platform)]_[set pkgconf::config_data(startup)].ldi>" - puts $file "#define CYGHWR_MEMORY_LAYOUT_H <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(platform)]_[set pkgconf::config_data(startup)].h>" + puts $file "#define CYGHWR_MEMORY_LAYOUT_LDI <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(base_platform)]_[set pkgconf::config_data(startup)].ldi>" + puts $file "#define CYGHWR_MEMORY_LAYOUT_H <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(base_platform)]_[set pkgconf::config_data(startup)].h>" # Also output details of the HAL header files that should be included puts $file "\n" puts $file "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_[set pkgconf::config_data(target)].h>" - puts $file "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_[set pkgconf::config_data(target)]_[set pkgconf::config_data(platform)].h>" + puts $file "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_[set pkgconf::config_data(target)]_[set pkgconf::config_data(base_platform)].h>" puts $file "\ \n#endif /* CYGONCE_PKGCONF_SYSTEM_H */ @@ -5879,6 +5928,7 @@ proc pkgconf::initialise_data { } { if { 0 } { puts "target: $pkgconf::config_data(target)" puts "platform: $pkgconf::config_data(platform)" + puts "base_platform: $pkgconf::config_data(base_platform)" puts "startup: $pkgconf::config_data(startup)" puts "prefix: $pkgconf::config_data(prefix)" puts "packages: $pkgconf::config_data(packages)"
