| /* |
| * Copyright (c) 2010-2014 Wind River Systems, Inc. |
| * Copyright (c) 2021 Nordic Semiconductor ASA |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /* Linkers may treat weak functions differently if they are located within |
| * the same object that calls the symbol or not. |
| * |
| * For example, when using armlink, then if the weak symbol is inside the object |
| * referring to it the weak symbol will be used. This will result in the symbol |
| * being multiply defined because both the weak and strong symbols are used. |
| * |
| * To GNU ld, it doesn't matter if the weak symbol is placed in the same object |
| * which uses the weak symbol. GNU ld will always link to the strong version. |
| * |
| * Having the weak main symbol in an independent file ensures that it will be |
| * correctly treated by multiple linkers. |
| */ |
| |
| #include <kernel_internal.h> |
| |
| #ifdef CONFIG_CPP_MAIN |
| int __weak main(void) |
| #else |
| void __weak main(void) |
| #endif |
| { |
| /* NOP default main() if the application does not provide one. */ |
| arch_nop(); |
| |
| #ifdef CONFIG_CPP_MAIN |
| return 0; |
| #endif |
| } |