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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Ср дек 08, 2010 19:03:17

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

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

п.с. спасибо, кидайтесь ... :о)
Последний раз редактировалось sunjob Ср ноя 09, 2022 14:38:40, всего редактировалось 2 раза.
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение VladislavS »

Ардуина это С++, а в С++ имена функций не такие как кажутся. Вот так получится.

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

extern "C"
{
  static int oldname(int x, int y) { return x + y; }
}
  static int newname(int x, int y) __attribute__((alias("oldname")));
Реклама
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Ср дек 08, 2010 19:03:17

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

Сообщение 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
ща мышку погонаю, заодно спрошу у нее, может подскажет?! :))
Последний раз редактировалось sunjob Ср ноя 09, 2022 14:37:34, всего редактировалось 1 раз.
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

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

Сообщение Eddy_Em »

VladislavS, а что общего у ардуины-наны и ARM? Как вообще ТС может что-то собирать при помощи arm-none-eabi-g++ под абдурину?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Ср дек 08, 2010 19:03:17

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

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

(*) - хотя странно, ведь реализация данного модуля на С++, следовательно "экранирование" не требуется (в проекте используются одновременно С и С++)
Последний раз редактировалось sunjob Ср ноя 09, 2022 15:05:28, всего редактировалось 3 раза.
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение VladislavS »

sunjob, хвостом чую - какую-то муйню задумали. Не мудрите. В нормальном коде это всё не надо.
Реклама
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Ср дек 08, 2010 19:03:17

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

Сообщение sunjob »

а я обычно... усами и носом пользуюсь :)) и вам, лично, спасибо!
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение 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")));
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Ср дек 08, 2010 19:03:17

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

Сообщение sunjob »

и что можно от них еще ожидать?! (не говоря уже про конвейрер/последовательность комнанд, какие там алиасы?! ... слова то какие завумные)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение VladislavS »

[uquote="sunjob",url="/forum/viewtopic.php?p=4317292#p4317292"]и что можно от них еще ожидать?![/uquote]Соблюдения стандарта языка. Поэтому, самому дальше стандарта не ходить.
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Ср дек 08, 2010 19:03:17

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

Сообщение sunjob »

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

(*) то-то мы с алиасами понасаблюдались и понастандартились :)))
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Ответить

Вернуться в «ARM»