Sfoglia il codice sorgente

ldgen: allow + sign in archive names

Closes https://github.com/espressif/esp-idf/issues/8073
Ivan Grokhotkov 6 anni fa
parent
commit
fbdb781fcb

+ 0 - 2
tools/ci/check_copyright_ignore.txt

@@ -3595,14 +3595,12 @@ tools/kconfig_new/test/confserver/test_confserver.py
 tools/kconfig_new/test/gen_kconfig_doc/test_kconfig_out.py
 tools/kconfig_new/test/gen_kconfig_doc/test_target_visibility.py
 tools/ldgen/entity.py
-tools/ldgen/fragments.py
 tools/ldgen/ldgen_common.py
 tools/ldgen/output_commands.py
 tools/ldgen/samples/template.ld
 tools/ldgen/sdkconfig.py
 tools/ldgen/test/data/linker_script.ld
 tools/ldgen/test/test_entity.py
-tools/ldgen/test/test_fragments.py
 tools/ldgen/test/test_output_commands.py
 tools/mass_mfg/mfg_gen.py
 tools/mkdfu.py

+ 3 - 14
tools/ldgen/fragments.py

@@ -1,17 +1,6 @@
 #
-# Copyright 2021 Espressif Systems (Shanghai) CO LTD
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+# SPDX-License-Identifier: Apache-2.0
 #
 import abc
 import os
@@ -217,7 +206,7 @@ class Fragment():
     KeyValue = namedtuple('KeyValue', 'grammar min max required')
 
     IDENTIFIER = Word(alphas + '_', alphanums + '_')
-    ENTITY = Word(alphanums + '.-_$')
+    ENTITY = Word(alphanums + '.-_$+')
 
     @abc.abstractmethod
     def set_key_value(self, key, parse_results):

+ 15 - 13
tools/ldgen/test/test_fragments.py

@@ -1,19 +1,9 @@
 #!/usr/bin/env python
 #
-# Copyright 2021 Espressif Systems (Shanghai) CO LTD
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+# SPDX-License-Identifier: Apache-2.0
 #
+
 import os
 import sys
 import tempfile
@@ -682,6 +672,18 @@ entries:
         with self.assertRaises(ParseFatalException):
             FragmentFile(test_fragment, self.sdkconfig)
 
+    def test_archive_allowed_names(self):
+        test_fragment = self.create_fragment_file(u"""
+[mapping:test]
+archive:
+    libstdc++.a
+entries:
+    * (default)
+""")
+
+        fragment_file = FragmentFile(test_fragment, self.sdkconfig)
+        self.assertEqual('libstdc++.a', fragment_file.fragments[0].archive)
+
     def test_empty_entries(self):
         test_fragment = self.create_fragment_file(u"""
 [mapping:test]