Страница 1 из 1

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

Добавлено: Ср ноя 09, 2022 12:25:41
sunjob
день добрей, господа кладуны! :о)

исходные следующие

Код: Выделить всё

- 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
первый раз выкрутился препроцессором
теперь надо однозначно алиас

п.с. спасибо, кидайтесь ... :о)

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

Добавлено: Ср ноя 09, 2022 13:19:29
VladislavS
Ардуина это С++, а в С++ имена функций не такие как кажутся. Вот так получится.

Код: Выделить всё

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
sunjob
нк-ка ну-ка ну-ка... щассс... одним глазочком, одним коготочком глянем... :)))

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
ща мышку погонаю, заодно спрошу у нее, может подскажет?! :))

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

Добавлено: Ср ноя 09, 2022 14:36:26
Eddy_Em
VladislavS, а что общего у ардуины-наны и ARM? Как вообще ТС может что-то собирать при помощи arm-none-eabi-g++ под абдурину?

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

Добавлено: Ср ноя 09, 2022 14:49:09
sunjob
эдуард.... :))) это-же абдурина-дуя!!! (сорри, оправился...)

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")));
всем большое спасибо за волшебные пендили :)))

(*) - хотя странно, ведь реализация данного модуля на С++, следовательно "экранирование" не требуется (в проекте используются одновременно С и С++)

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

Добавлено: Ср ноя 09, 2022 14:55:18
VladislavS
sunjob, хвостом чую - какую-то муйню задумали. Не мудрите. В нормальном коде это всё не надо.

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

Добавлено: Ср ноя 09, 2022 14:56:14
sunjob
а я обычно... усами и носом пользуюсь :)) и вам, лично, спасибо!

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

Добавлено: Ср ноя 09, 2022 15:26:28
VladislavS
[uquote="sunjob",url="/forum/viewtopic.php?p=4317268#p4317268"](*) - хотя странно, ведь реализация данного модуля на С++, следовательно "экранирование" не требуется[/uquote]Это компиляторозависимо. 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
sunjob
и что можно от них еще ожидать?! (не говоря уже про конвейрер/последовательность комнанд, какие там алиасы?! ... слова то какие завумные)

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

Добавлено: Ср ноя 09, 2022 15:57:32
VladislavS
[uquote="sunjob",url="/forum/viewtopic.php?p=4317292#p4317292"]и что можно от них еще ожидать?![/uquote]Соблюдения стандарта языка. Поэтому, самому дальше стандарта не ходить.

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

Добавлено: Ср ноя 09, 2022 17:05:55
sunjob
да тут хоть засоблюдайся и занеходись... (*) гарантии нет (about конвейр итд)
но это уже серьезная тема, не к топику...

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