Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

arm-none-eabi-gcc, alias function, aliased to undefined symb

Ср ноя 09, 2022 12:25:41

день добрей, господа кладуны! :о)

исходные следующие
Код:
- arm-none-eabi
- arduino-due (платформа)
- __attribute__ alias


пример-отладка
Код:
static int oldname(int x, int y) { return x + y; }
static int newname(int x, int y) __attribute__((alias("oldname")));

void setup(){;}
void loop() {;}


согласно url

выдает ошибку
Код:
alias_function:6:12: error: 'int newname(int, int)' aliased to undefined symbol 'oldname'
 static int newname(int x, int y) __attribute__((alias("oldname")));
            ^~~~~~~
exit status 1


первый раз выкрутился препроцессором
теперь надо однозначно алиас

п.с. спасибо, кидайтесь ... :о)
Последний раз редактировалось sunjob Ср ноя 09, 2022 14:38:40, всего редактировалось 2 раз(а).

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 13:19:29

Ардуина это С++, а в С++ имена функций не такие как кажутся. Вот так получится.
Код:
extern "C"
{
  static int oldname(int x, int y) { return x + y; }
}
  static int newname(int x, int y) __attribute__((alias("oldname")));

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 14:32:04

нк-ка ну-ка ну-ка... щассс... одним глазочком, одним коготочком глянем... :)))

p.s. наверное, лучше такь?
Код:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif


--> другая опышка
Код:
alias_function:14:15: error: expected unqualified-id before string constant
 static int oldname(int x, int y) { return x + y; }
               ^~~
exit status 1


ща мышку погонаю, заодно спрошу у нее, может подскажет?! :))
Последний раз редактировалось sunjob Ср ноя 09, 2022 14:37:34, всего редактировалось 1 раз.

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 14:36:26

VladislavS, а что общего у ардуины-наны и ARM? Как вообще ТС может что-то собирать при помощи arm-none-eabi-g++ под абдурину?

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 14:49:09

эдуард.... :))) это-же абдурина-дуя!!! (сорри, оправился...)

Re: arm-none-eabi-gcc, alias function, aliased to undefined symb
> Ардуина это С++
проект, как раз, пишется на СИ, с максимальным отходом от Абдурины... только минимальными средствами libsam & CMSIS
Код:
~/.arduino15/packages/arduino/hardware/sam/1.6.12/system
- libsam/  <-- $(ROOT)/sam/libsam
- CMSIS/   <-- $(ROOT)/sam/CMSIS/


p.s.
заработала-а-а-а... :kill: (*)
Код:
#ifdef __cplusplus
extern "C" {
#endif
static int oldname(int x, int y);
static int newname(int x, int y);
#ifdef __cplusplus
}
#endif

static int oldname(int x, int y) { return x + y; }
static int newname(int x, int y) __attribute__((alias("oldname")));


всем большое спасибо за волшебные пендили :)))

(*) - хотя странно, ведь реализация данного модуля на С++, следовательно "экранирование" не требуется (в проекте используются одновременно С и С++)
Последний раз редактировалось sunjob Ср ноя 09, 2022 15:05:28, всего редактировалось 3 раз(а).

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 14:55:18

sunjob, хвостом чую - какую-то муйню задумали. Не мудрите. В нормальном коде это всё не надо.

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 14:56:14

а я обычно... усами и носом пользуюсь :)) и вам, лично, спасибо!

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 15:26:28

(*) - хотя странно, ведь реализация данного модуля на С++, следовательно "экранирование" не требуется
Это компиляторозависимо. IAR нормально берёт, а GCC и ARMClang подавились. Им вот так кажется нормальным
Код:
int oldname(int x, int y) { return x + y; }
static int newname(int x, int y) __attribute__((alias("_Z7oldnameii")));

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 15:51:15

и что можно от них еще ожидать?! (не говоря уже про конвейрер/последовательность комнанд, какие там алиасы?! ... слова то какие завумные)

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 15:57:32

и что можно от них еще ожидать?!
Соблюдения стандарта языка. Поэтому, самому дальше стандарта не ходить.

Re: arm-none-eabi-gcc, alias function, aliased to undefined

Ср ноя 09, 2022 17:05:55

да тут хоть засоблюдайся и занеходись... (*) гарантии нет (about конвейр итд)
но это уже серьезная тема, не к топику...

(*) то-то мы с алиасами понасаблюдались и понастандартились :)))
Ответить