#1
|
|||
|
|||
gcpuid
Semen Panevin написал(а) к All в Dec 15 23:47:16 по местному времени:
Доброго здоровьица тебе, All! А может кто-то знает как починить gcpuid чтоб собирать без шаманства с -fno-pic или -DGCFGNOCPUID? Я с этим c# весь ассемблер напрочь позабыл, а как он с c++ дружит никогда и не знал. Честно пытался применить рецепты из интернетов но пока безуспешно. Неужели только у меня такая проблема? С наилучшими пожеланиями, Семён. ... Хорошо там, где нас нет... (это не про фидошников) --- GoldED+/LNX 1.1.5-b20151203 (Linux 4.1.12-gentoo iF6M10) |
#2
|
|||
|
|||
gcpuid
Alexey Vissarionov написал(а) к Semen Panevin в Dec 15 01:14:44 по местному времени:
Доброго времени суток, Semen! 03 Dec 2015 23:47:16, ты -> All: SP> А может кто-то знает как починить gcpuid чтоб собирать без шаманства SP> с -fno-pic или -DGCFGNOCPUID? SP> Я с этим c# весь ассемблер напрочь позабыл, а как он с c++ дружит SP> никогда и не знал. Честно пытался применить рецепты из интернетов SP> но пока безуспешно. Неужели только у меня такая проблема? Чего ты хочешь добиться? Лично мне всегда хватало getcpu() А еще можно совсем убрать эти костыли и получать информацию о процессоре выполнением внешней команды при запуске деда. Примерно так: sed -nre '/^$/Q;/^model name/{s,.*: |,,g;s, +, ,g;p}' /proc/cpuinfo В частности, у меня оно выдает "Intel(R) Core(TM) i7 CPU 975 @ 3.33GНz" -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... Пароль - как коньяк: чем больше звездочек, тем лучше --- /bin/vi |
#3
|
|||
|
|||
Re: gcpuid
Semen Panevin написал(а) к Alexey Vissarionov в Dec 15 07:27:26 по местному времени:
Доброго здоровьица тебе, Alexey! Friday December 04 2015 01:14, Alexey Vissarionov писал Semen Panevin: SP>> А может кто-то знает как починить gcpuid чтоб собирать без SP>> шаманства с -fno-pic или -DGCFGNOCPUID? Я с этим c# весь SP>> ассемблер напрочь позабыл, а как он с c++ дружит никогда и не SP>> знал. Честно пытался применить рецепты из интернетов но пока SP>> безуспешно. Неужели только у меня такая проблема? AV> Чего ты хочешь добиться? Чтоб голдед из репы компилился без лишних патчей. AV> Лично мне всегда хватало getcpu() Не припомню в сырцах голдеда такой функции. В отличие от gcpuid(). AV> А еще можно совсем убрать эти костыли и получать информацию о AV> процессоре выполнением внешней команды при запуске деда. Примерно так: Присылай патч (ц) Только учти, что в винде нет /proc/cpuinfo да и в линухах ей быть в общем-то не обязательно. Впрочем, как раз именно тут ты пытаешься прикрутить костыль (ажно внешняя команда!) AV> sed -nre '/^$/Q;/^model name/{s,.*: |,,g;s, +, ,g;p}' /proc/cpuinfo С наилучшими пожеланиями, Семён. ... Век живи, век учись! --- GoldED+/LNX 1.1.5-b20151203 (Linux 4.1.12-gentoo iF6M10) |
#4
|
|||
|
|||
gcpuid
Alexey Vissarionov написал(а) к Semen Panevin в Dec 15 11:55:00 по местному времени:
Доброго времени суток, Semen! 04 Dec 2015 07:27:26, ты -> мне: SP>>> А может кто-то знает как починить gcpuid чтоб собирать без SP>>> шаманства с -fno-pic или -DGCFGNOCPUID? Я с этим c# весь SP>>> ассемблер напрочь позабыл, а как он с c++ дружит никогда и SP>>> не знал. Честно пытался применить рецепты из интернетов но SP>>> пока безуспешно. Неужели только у меня такая проблема? AV>> Чего ты хочешь добиться? SP> Чтоб голдед из репы компилился без лишних патчей. Лишних - это каких? Может, есть смысл добавить их в mainstream? AV>> Лично мне всегда хватало getcpu() SP> Не припомню в сырцах голдеда такой функции. В отличие от gcpuid(). man 2 getcpu AV>> А еще можно совсем убрать эти костыли и получать информацию AV>> о процессоре выполнением внешней команды при запуске деда. AV>> Примерно так: SP> Присылай патч (ц) Я и сам закоммитить могу :-) SP> Только учти, что в винде нет /proc/cpuinfo да и в линухах ей быть SP> в общем-то не обязательно. Теоретически, собрать ядро без CONFIGPROCFS можно... вот только ни одна современная система с таким ядром работать не сможет, поэтому вполне можно считать, что /proc/cpuinfo есть всегда. SP> Впрочем, как раз именно тут ты пытаешься прикрутить костыль (ажно SP> внешняя команда!) AV>> sed -nre '/^$/Q;/^model name/{s,.*: |,,g;s, +, ,g;p}' /proc/cpuinfo Если вспомнить, что сабж появился в деде исключительно как виртуальная писька для занятий компаративной фаллометрией ("если нечем похвалиться, похвались процессором") и никакой другой функции не выполняет, использование внешних команд, наоборот, является предпочтительным, так как позволяет запихнуть их вывод в любое место темплейта. -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... Главное прокукарекать, а там хоть трава не расти --- /bin/vi |
#5
|
|||
|
|||
Re: gcpuid
Semen Panevin написал(а) к Alexey Vissarionov в Dec 15 08:52:50 по местному времени:
Доброго здоровьица тебе, Alexey! Friday December 04 2015 11:55, Alexey Vissarionov писал Semen Panevin: AV>>> Лично мне всегда хватало getcpu() SP>> Не припомню в сырцах голдеда такой функции. В отличие от SP>> gcpuid(). AV> man 2 getcpu ВЕРСИИ Вызов getcpu() был добавлен в ядро 2.6.19 для x86_64 и i386. Что-то я плохо верю, что ты такой молодой, что тебе всегда его хватало. А голдедовский gcpuid украден из ядра фри гораздо более давно емнип. AV> Теоретически, собрать ядро без CONFIGPROCFS можно... вот только ни AV> одна современная система с таким ядром работать не сможет, поэтому AV> вполне можно считать, что /proc/cpuinfo есть всегда. Ты опять немножко забываешь про всякие там альтернативные ос, и даже не только винду. AV> Если вспомнить, что сабж появился в деде исключительно как виртуальная AV> писька для занятий компаративной фаллометрией ("если нечем AV> похвалиться, похвались процессором") и никакой другой функции не AV> выполняет, использование внешних команд, наоборот, является AV> предпочтительным, так как позволяет запихнуть их вывод в любое место AV> темплейта. Никто не машает использовать внешние команды и запихивать их вывод куда угодно в дополнение к существующему функционалу. Я же хочу починить то что уже есть и работает, а не выпилить его совсем потому что ты им не пользуешься. С наилучшими пожеланиями, Семён. ... Человек может все, пока не начнет что-то делать... (c)... --- GoldED+/LNX 1.1.5-b20151203 (Linux 4.1.12-gentoo iF6M10) |
#6
|
|||
|
|||
Re: gcpuid
Semen Panevin написал(а) к Alexey Vissarionov в Dec 15 09:13:32 по местному времени:
Доброго здоровьица тебе, Alexey! Saturday December 05 2015 08:52, Semen Panevin послал Alexey Vissarionov: AV>>>> Лично мне всегда хватало getcpu() SP>>> Не припомню в сырцах голдеда такой функции. В отличие от SP>>> gcpuid(). AV>> man 2 getcpu Почитал повнимательнее. ОПИСАНИЕ Системный вызов getcpu() определяет процессор и узел, на котором вызывающая нить или процесс выполняются в данный момент и записывает их в виде целых чисел в память, на которую указывают аргументы cpu и node. Процессор представляется в виде уникального малого целого числа, закреплённого за определённым ЦП. Узел представляется в виде уникального идентификатора, закреплённого за определённым узлом NUMA. Это вообще зачем и как оно может заменить gcpuid у которого совсем другая задача? С наилучшими пожеланиями, Семён. ... Жизнь принуждает человека ко многим добровольным действиям... (c)... --- GoldED+/LNX 1.1.5-b20151203 (Linux 4.1.12-gentoo iF6M10) |
#7
|
|||
|
|||
Re: gcpuid
Serguei E. Leontiev написал(а) к Semen Panevin в Dec 15 11:27:27 по местному времени:
From: "Serguei E. Leontiev" <leo@sai.msu.ru> Привет Семён, От 3 декабря 2015 г., 23:47:16 в fido7.ru.golded ты писал: SP> А может кто-то знает как починить gcpuid чтоб собирать без SP> шаманства с -fno-pic Ой, какой суровый код там. Интересно зачем scpuid обявили static? Если расположить её на стеке то проблема исчезнет, даже 'call ; pop' не нужны будут. SP> или -DGCFGNOCPUID? SP> Я с этим c# весь ассемблер напрочь позабыл, а как он с c++ SP> дружит никогда и не знал. Честно пытался применить рецепты из SP> интернетов но пока безуспешно. Неужели только у меня такая SP> проблема? Если слегка модифицировать код, убрать кучу аргументов asm() убрать и заменить на один указатель на структуру станет существенно легче. Вариант второй, если ветка defined(MSCVER) всех удовлетворяет и выдаёт достаточную информацию, когда-то я писал аналоги функций НaveCPUID() и cpuid() для Unix с обработкой сигнала. Можно оставить только её. -- Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru --- ifmail v.2.15dev5.4 |
#8
|
|||
|
|||
Re: gcpuid
Semen Panevin написал(а) к Serguei E. Leontiev в Dec 15 13:20:58 по местному времени:
Доброго здоровьица тебе, Serguei! SP>> А может кто-то знает как починить gcpuid чтоб собирать без SP>> шаманства с -fno-pic SEL> Ой, какой суровый код там. SEL> Интересно зачем scpuid обявили static? Если расположить её на стеке то SEL> проблема исчезнет, даже 'call ; pop' не нужны будут. Присылай патч :) Там написано что этот код честно украден из ядра фри. Подозреваю, что в ядре фри он уже тридцать три раза переписан и более совместим с современными процессорами и компиляторами, но у меня нет под рукой исходников ядра фри чтоб это проверить. SEL> Если слегка модифицировать код, убрать кучу аргументов asm() убрать и SEL> заменить на один указатель на структуру станет существенно легче. SEL> Вариант второй, если ветка defined(MSCVER) всех удовлетворяет и SEL> выдаёт достаточную информацию, когда-то я писал аналоги функций SEL> НaveCPUID() и cpuid() для Unix с обработкой сигнала. Можно оставить SEL> только её. С наилучшими пожеланиями, Семён. ... Век живи, век учись! --- GoldED+/LNX 1.1.5-b20151203 (Linux 4.1.12-gentoo iF6M10) |
#9
|
|||
|
|||
Re: gcpuid
Serguei E. Leontiev написал(а) к Semen Panevin в Dec 15 17:21:08 по местному времени:
From: "Serguei E. Leontiev" <leo@sai.msu.ru> Привет Семён, От 5 декабря 2015 г., 13:20:58 в fido7.ru.golded ты писал: SP> Доброго здоровьица тебе, Serguei! SP>>> А может кто-то знает как починить gcpuid чтоб собирать SP>>> без шаманства с -fno-pic SEL>> Ой, какой суровый код там. SEL>> Интересно зачем scpuid обявили static? Если расположить её SEL>> на стеке то проблема исчезнет, даже 'call ; pop' не нужны SEL>> будут. SP> Присылай патч :) Подумаю на сей счёт, можно ли проблему решить за 5 строчек. Однако остался без ответа второй вопрос. SEL>> Если слегка модифицировать код, убрать кучу аргументов SEL>> asm() убрать и заменить на один указатель на структуру SEL>> станет существенно легче. Вариант второй, если ветка SEL>> defined(MSCVER) всех удовлетворяет Так и ветка defined(MSCVER) удовлетворяет всю Одессу или нет? Есть ли смысл держать две ветки распознавания типа процессора? -- Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru --- ifmail v.2.15dev5.4 |
#10
|
|||
|
|||
Re: gcpuid
Semen Panevin написал(а) к Serguei E. Leontiev в Dec 15 20:14:30 по местному времени:
Доброго здоровьица тебе, Serguei! Saturday December 05 2015 17:21, Serguei E. Leontiev писал Semen Panevin: SEL> Так и ветка defined(MSCVER) удовлетворяет всю Одессу или нет? Есть SEL> ли смысл держать две ветки распознавания типа процессора? Я боюсь что ветка MSСVER компилится только microsoft c++ compiler. Поэтому в линуксе идёт мимо тазика. Так что твой вопрос мне очень непонятен. Как использовать microsoft c++ compiler в линуксе и прочих полуосях я не знаю. С наилучшими пожеланиями, Семён. ... Если человек родился, то это уж на всю жизнь... (c)... --- GoldED+/LNX 1.1.5-b20151203 (Linux 4.1.12-gentoo iF6M10) |