Логин:   Пароль:   
   
 
X   Сообщение сайта
(Сообщение закроется через 2 секунды)
 
> Патч исходников NTPd для включения возможности использования опции leapsmearinterval в его конфиге, под винду
Sergey Ozerov
сообщение 27.11.2016, 23:54
Сообщение #1


Форуман
Иконка группы

Группа: Главные администраторы
Сообщений: 20584
Регистрация: 10.1.2004
Из: Bogorodskoye, Moscow, Russia
Пользователь №: 1221
Спасибо сказали: 1912 раз(а)



Исходники последнего релиза брались отсюда. Включаем под виндой экспериментальную опцию, описанную здесь. Патчи выполнены и проверены только под VisualStudio 2013 (под прочие версии VS пишется аналогично -- по образу и подобию).

Собственно, сама функция добавляется этим патчем:
PORTS\WINNT\VS2013\common.props
Код
--- A\PORTS\WINNT\VS2013\common.props    2016-06-02 13:53:44.000000000 +0300
+++ B\PORTS\WINNT\VS2013\common.props    2016-11-26 08:53:28.606628600 +0300
@@ -18,7 +18,7 @@
     </BuildLog>
     <ClCompile>
       <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\include;..\..\..\..\lib\isc\include;..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;_WINDOWS;WIN32;SYS_WINNT;HAVE_CONFIG_H;HAVE_ARC4RANDOM_BUF;_CRT_SEC
URE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_CONSOLE;_WINDOWS;WIN32;SYS_WINNT;HAVE_CONFIG_H;HAVE_ARC4RANDOM_BUF;_CRT_SEC
URE_NO_WARNINGS;LEAP_SMEAR;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <FunctionLevelLinking>true</FunctionLevelLinking>

Здесь LEAP_SMEAR включает эту фичу, а _USE_MATH_DEFINES избавляет от появляющейся при компиляции ошибки, связанной с особенностями транслятора (по дефолту не определено число "Пи").

На этом можно было бы и закончить, если бы не возникшие ошибки разрешения внешних ссылок из-за того, что в порт под винду забыли кое-что дописать. Ну и, собственно, добавляем это недостающее:
NTPD\ntp_leapsec.h
Код
--- A\NTPD\ntp_leapsec.h    2015-06-24 17:45:11.000000000 +0300
+++ B\NTPD\ntp_leapsec.h    2016-11-26 10:03:07.180628600 +0300
@@ -11,6 +11,10 @@
#ifndef NTP_LEAPSEC_H
#define NTP_LEAPSEC_H

+#ifdef LEAP_SMEAR
+#include "ntp_fp.h"
+#endif
+
struct stat;
PORTS\WINNT\VS2013\LIBNTP\libntp.vcxproj
Код
--- A\PORTS\WINNT\VS2013\LIBNTP\libntp.vcxproj    2016-11-21 15:28:40.000000000 +0300
+++ B\PORTS\WINNT\VS2013\LIBNTP\libntp.vcxproj    2016-11-26 10:39:42.158628600 +0300
@@ -260,6 +260,7 @@
     <ClCompile Include="..\..\..\..\libntp\octtoint.c" />
     <ClCompile Include="..\..\..\..\libntp\prettydate.c" />
     <ClCompile Include="..\..\..\..\libntp\recvbuff.c" />
+    <ClCompile Include="..\..\..\..\libntp\refidsmear.c" />
     <ClCompile Include="..\..\..\..\libntp\refnumtoa.c" />
     <ClCompile Include="..\..\..\..\libntp\snprintf.c" />
     <ClCompile Include="..\..\..\..\libntp\socket.c" />
@@ -357,6 +358,7 @@
     <ClInclude Include="..\..\..\..\include\ntp_types.h" />
     <ClInclude Include="..\..\..\..\include\ntp_unixtime.h" />
     <ClInclude Include="..\..\..\..\include\recvbuff.h" />
+    <ClInclude Include="..\..\..\..\include\refidsmear.h" />
     <ClInclude Include="..\..\..\..\include\safecast.h" />
     <ClInclude Include="..\..\..\..\include\timespecops.h" />
     <ClInclude Include="..\..\..\..\include\timetoa.h" />
PORTS\WINNT\VS2013\LIBNTP\libntp.vcxproj.filters
Код
--- A\PORTS\WINNT\VS2013\LIBNTP\libntp.vcxproj.filters    2016-11-21 15:28:40.000000000 +0300
+++ B\PORTS\WINNT\VS2013\LIBNTP\libntp.vcxproj.filters    2016-11-26 10:44:11.172628600 +0300
@@ -227,6 +227,9 @@
     <ClCompile Include="..\..\..\..\libntp\recvbuff.c">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\libntp\refidsmear.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\libntp\refnumtoa.c">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -502,6 +505,9 @@
     <ClInclude Include="..\..\..\..\include\recvbuff.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\refidsmear.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\include\sys\resource.h">
       <Filter>Header Files</Filter>
     </ClInclude>
PORTS\WINNT\VS2013\NTPD\ntpd.vcxproj
Код
--- A\PORTS\WINNT\VS2013\NTPD\ntpd.vcxproj    2016-04-27 03:10:34.000000000 +0300
+++ B\PORTS\WINNT\VS2013\NTPD\ntpd.vcxproj    2016-11-26 10:47:04.459628600 +0300
@@ -380,6 +380,7 @@
     <ClInclude Include="..\..\..\..\include\ntp_worker.h" />
     <ClInclude Include="..\..\..\..\include\ntp_workimpl.h" />
     <ClInclude Include="..\..\..\..\include\recvbuff.h" />
+    <ClInclude Include="..\..\..\..\include\refidsmear.h" />
     <ClInclude Include="..\..\..\..\include\timespecops.h" />
     <ClInclude Include="..\..\..\..\include\timevalops.h" />
     <ClInclude Include="..\..\..\..\lib\isc\include\isc\assertions.h" />
PORTS\WINNT\VS2013\NTPD\ntpd.vcxproj.filters
Код
--- A\PORTS\WINNT\VS2013\NTPD\ntpd.vcxproj.filters    2016-04-27 03:10:34.000000000 +0300
+++ B\PORTS\WINNT\VS2013\NTPD\ntpd.vcxproj.filters    2016-11-26 10:48:13.511628600 +0300
@@ -476,6 +476,9 @@
     <ClInclude Include="..\..\..\..\include\recvbuff.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\refidsmear.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\ntpd\refclock_palisade.h">
       <Filter>Header Files</Filter>
     </ClInclude>


--------------------
Правило - это КАК без ПОЧЕМУ.
 
+Цитировать сообщение
spy
сообщение 7.3.2017, 4:12
Сообщение #2


Психопат
Иконка группы

Группа: Модераторы
Сообщений: 4898
Регистрация: 27.8.2006
Пользователь №: 18505
Спасибо сказали: 264 раз(а)



Вот серьезно, с такими мозгами и на винде? Странно как-то.
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0



© 2005—2016 ООО «Нэт Бай Нэт Холдинг»,
Все права защищены.
Правила пользования ресурсами