LibC(MenuetLibC) + GCC

Discussing libraries simplifying applications development
  • "Программист, написавший код, понимает его скорее всего лучше, чем кто-либо еще, мне кажется." - это такой эвфемизм для "не буду я фиксить чужие баги"?
  • Фиксированный размер стека не есть хорошо. Есть способ передать значение в ld из командной строки или только через скрипт ?
    Разумеет речь идёт об ELF.
  • Serge, в формате ELF физически не существует поля размера стека. Если речь идёт о том, чтобы задавать нужный размер стека в программе для Колибри - у ld есть опция командной строки --defsym=SYMBOL=VALUE, с помощью которой можно определить какой-нибудь символ, который потом можно использовать в скрипте.
    Сделаем мир лучше!
  • CleverMouse

    Спасибо. Попробую сделать динамическое выделение стека как в newlib.
  • Нашёл интересную статью о том, как можно разбирать строку на аргументы (в принципе, всё было и так понятно, но с ней вообще всё ясно). Да, алгоритм не идеальный, но очень простой. Будет время, попробую что-нибудь сделать с crt...
    http://stackoverflow.com/questions/1706 ... -argv-argc
  • Albom, Sorcerer, вы действительно верите, что ошибка в коде разбора параметров? По второму из "спойлеров" из viewtopic.php?p=31758#p31758 очевидно же, что нет - иначе эквивалентное с точки зрения языка Си преобразование ничего бы не меняло.
    Сделаем мир лучше!
  • CleverMouse
    Я понятия не имею - в разборе или нет. Что-то где-то затирается... Может стек виноват, сказать не могу. Но в crt, я считаю, покопаться нужно... Во-первых, там есть "#if 0" со старой реализацией разбора строки. Для удобства восприятия исходника можно всё связанное с ней убрать. А во-вторых, разбор строки работает неправильно, так как при запуске программы без параметров, argc = 0, а должно быть 1 и в argv[0] указатель на имя программы.
  • Albom, ага, из-за этого код нужно полностью переписать и верить, что ошибка, вызванная другими причинами, уйдёт сама.
  • Тогда что может быть причиной?
  • Однако в коде действительно ошибки.

    Code: Select all

    if(__menuet__app_param_area[0]!='\0')
     __crt0_setup_arguments();
    Если командная строка пустая, то и argc=0.
  • Значит, Albom, возмущавшийся таким поведением, может не переписывать код, а удалить одну строчку. Естественно, к проблеме Sorcerer эта недоработка отношения не имеет.
    P.S. Раз уж упоминали diamond'а... эти строчки присутствуют и на menuetlibc.sf.net, так что это не он.
    Сделаем мир лучше!
  • Согласен, что к проблеме Sorcerer это отношения не имеет.
    Кстати, я не возмущался, просто меня смущает несколько мест в коде.
  • http://websvn.kolibrios.org/filedetails ... uet%2Fos.h

    Почему

    Code: Select all

    #define EVENT_BUTTON              0x00000004
    ?

    Кнопка ведь это 3 или я чего-то не понимаю.
    Из хаоса в космос
  • Третий бит: 1 SHL 2. Третий с единицы, второй с нуля.
  • Who is online

    Users browsing this forum: No registered users and 5 guests