Wykres commitów

278 Commity (1ed77e3a8d8769f4f8d12f515b6818787f725867)

Autor SHA1 Wiadomość Data
Ivan Grokhotkov 499d087c91 C++: add provisions for optional RTTI support
Ref. https://github.com/espressif/esp-idf/issues/1684

This change allows RTTI to be enabled in menuconfig. For full RTTI
support, libstdc++.a in the toolchain should be built without
-fno-rtti, as it is done now.

Generally if libstdc++.a is built with RTTI, applications which do not
use RTTI (and build with -fno-rtti) could still include typeinfo
structures referenced from STL classes’ vtables. This change works
around this, by moving all typeinfo structures from libstdc++.a into
a non-loadable section, placed into a non-existent memory region
starting at address 0. This can be done because when the application
is compiled with -fno-rtti, typeinfo structures are not used at run
time. This way, typeinfo structures do not contribute to the
application binary size.

If the application is build with RTTI support, typeinfo structures are
linked into the application .rodata section as usual.

Note that this commit does not actually enable RTTI support.
The respective Kconfig option is hidden, and will be made visible when
the toolchain is updated.
2019-10-13 14:46:44 +02:00
Roland Dobai 15857d9cbb Handle deprecated values in sdkconfig.defaults
The issue was pointed out also in
https://github.com/espressif/esp-idf/issues/4092
2019-10-02 16:29:25 +00:00
Roland Dobai 5a916ce126 Support ELF files loadable with gdb 2019-09-24 07:19:50 +00:00
Angus Gratton 96474f33a6 Merge branch 'bugfix/gnu_make_windows_paths' into 'master'
build: In GNU Make, use "cygpath -m" to avoid backslashes

Closes IDF-961

See merge request espressif/esp-idf!6132
2019-09-19 19:34:01 +08:00
Angus Gratton d371605315 build: In GNU Make, use "cygpath -m" to avoid backslashes
Fixes issues where backslashes in KCONFIG paths are later expanded as shell escape sequences.
2019-09-17 13:47:05 +10:00
Andrew 4fdaeb6b6e cmake: Add new compiler optimization levels definitions
Rename and add multiple kconfig compiler options. New compiler options
COMPILER_OPTIMIZATION_PERF and COMPILER_OPTIMIZATION_NONE have been added.
Optimize "Debug" and "Release" options to "Default" and "Size" respectively.
This commit also does the following:

- The COMPILER_OPTIMIZATION_PERF option introduced multiple bug.
This commit fixes those bugs.
- build.yml also updated to test for the new optimization options.
2019-09-06 17:37:19 +08:00
Roland Dobai 8b8b2f12e4 Fix sdkconfig.rename paths for confgen.py in MSYS
Closes https://github.com/espressif/esp-idf/issues/3950
2019-08-22 11:48:19 +02:00
Ivan Grokhotkov 0a74227cfa bump version to 4.1 2019-08-13 10:09:52 +02:00
Angus Gratton 01f7e7cc16 Merge branch 'bugfix/confgen_sdkconfig_renames' into 'master'
tools: Support sdkconfig.rename files from outside IDF in confgen.py

Closes IDF-659

See merge request espressif/esp-idf!5551
2019-08-09 14:21:19 +08:00
Dmitry Plotnikov 7cb3a57b9c build_system: add -freorder-blocks option for release config 2019-07-27 09:28:19 +00:00
Roland Dobai bd21960955 tools: Support sdkconfig.rename files from outside IDF in confgen.py 2019-07-16 20:18:19 +02:00
Angus Gratton a60b1428d5 gnu make: Make V= behaviour consistent with V=0
Previously, V=0 would print some verbose lines but not most of them.

This meant that it was impossible to disable all verbose output
when BATCH_BUILD=1

Closes https://github.com/espressif/esp-idf/issues/3488
2019-06-24 21:01:12 +10:00
Angus Gratton eac356ef4a Merge branch 'feature/idf_version_header' into 'master'
esp_common: add esp_idf_version.h header to define IDF version

Closes IDF-253

See merge request idf/esp-idf!4596
2019-06-13 09:41:35 +08:00
Roland Dobai c5000c83d2 Rename Kconfig options (root) 2019-05-21 09:09:01 +02:00
Ivan Grokhotkov 6ca07eca68 esp_common: add version definitions in code and build system
Closes https://github.com/espressif/esp-idf/issues/2482
Closes IDF-253
2019-05-20 13:14:56 +08:00
Renz Christian Bagaporo 0ad13cd40f ldgen,make: simplify os check 2019-05-06 20:31:05 +08:00
V.Dudnik f3f4e58313 project_config_mk: fix if condition 2019-05-05 19:12:33 +03:00
Renz Christian Bagaporo 4cc8b92d22 make: fix missing rule for creating ldgen_libraries file 2019-04-30 11:54:01 +08:00
Renz Christian Bagaporo b1ecd75d83 ldgen: pass component libraries directly 2019-04-26 20:06:53 +08:00
Roland Dobai 23ee93ea76 Rename deprecated Kconfig options in a backward compatible way 2019-04-24 12:53:02 +02:00
Anton Maklakov 410f5c3f7d build: Add a standard way to use GNU extensions from libc, since we have a general configured newlib in the toolchain 2019-04-17 12:08:36 +07:00
Anton Maklakov 2e6c8cdce3 esp32: disable -Wframe-address
Since the behavior is well defined on Xtensa with Window ABI we can
suppress a frame-address warning. Also fix the CMAKE_C*_FLAGS parsing.
2019-04-10 13:52:30 +08:00
Mahavir Jain e4d97bef3d make: use `shell` command to extract version string 2019-03-17 21:33:22 +08:00
Angus Gratton 87881b76ad Merge branch 'bugfix/make_gcc_version_evaluation' into 'master'
make: Ensure that component_project_vars.mk not generated before config

See merge request idf/esp-idf!4474
2019-03-15 14:30:48 +08:00
Angus Gratton f552977309 make: Ensure that component_project_vars.mk not generated before config
* Fix the situation where component_project_vars.mk is generated before config exists
* Does not fix situation where config is changed and component_project_vars.mk contents should be
  changed. This may still require a rebuild.
2019-03-14 10:57:36 +11:00
Konstantin Kondrashov 53208f6324 make: Trim IDF_VER to fit a 32-bit field
Closes: https://github.com/espressif/esp-idf/issues/3131
2019-03-13 20:01:28 +08:00
Ivan Grokhotkov 1aa8e8d38e Merge branch 'bugfix/make_extra_component_dirs' into 'master'
make: fix issues related to EXTRA_COMPONENT_DIRS

See merge request idf/esp-idf!4253
2019-02-22 16:00:31 +08:00
Renz Christian Bagaporo 24284b3afd ldgen: remove resolution of template includes 2019-02-22 08:25:56 +08:00
Renz Christian Bagaporo 6b7f4bc72f make: remove unecessary inclusion of ldgen.mk 2019-02-14 18:58:48 +08:00
Renz Christian Bagaporo acd0be8239 cmake,make: add dependencies on template included scripts 2019-02-14 18:58:48 +08:00
Ivan Grokhotkov 7df598a062 make: fix issues related to EXTRA_COMPONENT_DIRS
1. When one of the COMPONENT_DIRS points to a component directory
(i.e. a directory containing component.mk, not a directory of multiple
components), and there is a subdirectory in it which also contains
a component, the subdirectory was mistakenly added to the list of
components and compiled.

For example:

    main/
        component.mk
        main.c
        test/
            component.mk
            test_main.c

Would compile test_main.c and link libtest.a.

2. When one of the COMPONENT_DIRS points to a component directory, and
the parent directory contained a directory with the same name as
another component, that directory would be mistakenly added to the
COMPONENT_PATHS.

For example:

    esp/
        esp-idf/
        esp32/
            (random stuff)
        mycomponent/
            component.mk
            mycomponent.c
        myproject/
            main/
            Makefile

and Makefile sets EXTRA_COMPONENT_DIRS=$(realpath ../mycomponent),
then "esp32" directory which is at the same level as mycomponent
was added to COMPONENT_PATHS.

3. If EXTRA_COMPONENT_DIRS pointed to a directory with a list of
components, and one of the subdirectories was not a component, but
had the same name as another component, than that directory would be
mistakenly added to COMPONENT_PATHS instead of the real esp32
component directory.

For example:

    my_components/
        my_component/
            component.mk
            my_component.c
        esp32/
            (some random stuff)

and EXTRA_COMPONENT_DIRS would point to my_components/, then "esp32"
directory would be added to COMPONENT_PATHS instead of the real esp32
component directory.
2019-02-13 16:34:50 +08:00
Renz Christian Bagaporo af5cff0589 cmake: fix regression with linux make builds
Closes https://github.com/espressif/esp-idf/issues/2839
2018-12-17 14:04:49 +08:00
Renz Christian Bagaporo d3938c8a66 ldgen: fix issue when not built in msys2
Closes https://github.com/espressif/esp-idf/issues/2812
2018-12-13 20:44:29 +08:00
Anton Maklakov 812a49bd0d Merge branch 'bugfix/shell_exit' into 'master'
scripts: Fix shell exit

See merge request idf/esp-idf!3908
2018-12-07 00:49:52 +08:00
Angus Gratton 8ab2f20c3a ldgen make: Use "sed -E" for extended POSIX regular expression syntax w/ BSD sed 2018-12-06 15:28:18 +11:00
Angus Gratton ef4a4105f4 make/ldgen: Fix generation of ldgen.section_infos file when shell is bash
bash doesn't escape by default from "echo", so use "printf"

Closes https://github.com/espressif/esp-idf/pull/2797
Closes https://github.com/espressif/esp-idf/issues/2796
2018-12-06 10:20:35 +11:00
Anton Maklakov 34109c4171 scripts: Fix shell exit. Really exit from current process, not from child process 2018-12-05 21:25:16 +08:00
Ivan Grokhotkov 8a7b46aa90 Merge branch 'feature/anti_rollback_exp' into 'master'
esp32: Add firmware version to app

See merge request idf/esp-idf!3461
2018-12-05 11:10:04 +08:00
Konstantin Kondrashov 3b9cb25fe1 esp32: Add firmware version to app
Added a new structure esp_app_desc_t. It has info about firmware:
version, secure_version, project_name, time/date build and IDF version.
Added the ability to add a custom structure with a description of the firmware.

The esp_app_desc_t is located in fixed place in start of ROM secotor. It is located after structures esp_image_header_t and esp_image_segment_header_t.

app_version is filed from PROJECT_VER variable (if set in custom make file) or PROJECT_PATH/version.txt or git repo (git describe).

Add API to get app_desc from partition.
2018-12-03 16:52:04 +08:00
Renz Christian Bagaporo a7a1c32a8e cmake, make: fix long cmd line args for ldgen 2018-12-03 12:26:38 +08:00
Angus Gratton a34a27010b Merge branch 'feature/partition_tools' into 'master'
Partition level tools

See merge request idf/esp-idf!3355
2018-11-30 14:15:51 +08:00
Renz Christian Bagaporo a2f63c09bf make, ldgen: remove uncessary passed target env variable 2018-11-29 13:21:31 +08:00
Renz Christian Bagaporo 5e08698039 make: use otatool and parttool for build 2018-11-28 15:57:20 +08:00
Angus Gratton 4f4edcf676 ldgen: Fix ENOENT errors on Windows with MSYS2 and GNU Make 2018-11-20 17:25:20 +11:00
Ivan Grokhotkov 99dd08943c make/ldgen: fix line continuation 2018-11-20 01:27:25 +08:00
Renz Bagaporo 63411fc556 tools: implement linker script generation 2018-11-16 12:42:02 +08:00
Ivan Grokhotkov ccfa134533 build system: support for multiple targets 2018-11-11 21:46:02 +08:00
Anton Maklakov 1658833470 build system: Fix checking the toolchain version on Windows 2018-09-26 14:42:01 +08:00
Anton Maklakov 9a55557ad8 build system: Add a compatible old GCC flag 2018-09-20 18:53:14 +08:00
Anton Maklakov 10ec85f848 build system: and gcc8 warnings compatibility option 2018-09-20 18:53:14 +08:00