Closed Bug 936801 Opened 11 years ago Closed 11 years ago

nsLDAPConnection.cpp fails to compile with multiple errors possibly caused by mozilla-central Bug 869869 Part 1

Categories

(MailNews Core :: LDAP Integration, defect)

x86
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 28.0

People

(Reporter: philip.chee, Assigned: schien)

References

Details

(Keywords: regression)

Attachments

(2 files, 1 obsolete file)

https://tbpl.mozilla.org/php/getParsedLog.php?id=30295004&tree=Thunderbird-Trunk#error0

e:/builds/moz2_slave/tb-c-cen-w32-00000000000000000/build/mozilla/other-licenses/snappy/src/snappy.cc(962) : warning C4018: '<=' : signed/unsigned mismatch
nsLDAPConnection.cpp
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(96) : warning C4005: 'AF_IPX' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(452) : see previous definition of 'AF_IPX'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(129) : warning C4005: 'AF_MAX' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(471) : see previous definition of 'AF_MAX'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(173) : warning C4005: 'SO_DONTLINGER' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(394) : see previous definition of 'SO_DONTLINGER'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(217) : error C2011: 'sockaddr' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(477) : see declaration of 'sockaddr'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(414) : error C2059: syntax error : 'constant'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(414) : error C3805: 'constant': unexpected token, expected either '}' or a ','
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(549) : warning C4005: 'IN_CLASSA' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(279) : see previous definition of 'IN_CLASSA'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(555) : warning C4005: 'IN_CLASSB' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(285) : see previous definition of 'IN_CLASSB'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(561) : warning C4005: 'IN_CLASSC' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(291) : see previous definition of 'IN_CLASSC'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(572) : warning C4005: 'INADDR_ANY' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(296) : see previous definition of 'INADDR_ANY'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(574) : warning C4005: 'INADDR_BROADCAST' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(298) : see previous definition of 'INADDR_BROADCAST'
c:\Program Files (x86)\Windows Kits\8.0\include\shared\ws2def.h(608) : error C2011: 'sockaddr_in' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(304) : see declaration of 'sockaddr_in'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(125) : error C2011: 'fd_set' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(60) : see declaration of 'fd_set'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(145) : warning C4005: 'FD_CLR' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(89) : see previous definition of 'FD_CLR'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(160) : warning C4005: 'FD_SET' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(94) : see previous definition of 'FD_SET'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(169) : error C2011: 'timeval' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(103) : see declaration of 'timeval'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(225) : error C2011: 'hostent' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(159) : see declaration of 'hostent'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(238) : error C2011: 'netent' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(172) : see declaration of 'netent'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(245) : error C2011: 'servent' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(179) : see declaration of 'servent'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(257) : error C2011: 'protoent' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(191) : see declaration of 'protoent'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(353) : error C2011: 'WSAData' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(314) : see declaration of 'WSAData'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(451) : error C2011: 'sockproto' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(486) : see declaration of 'sockproto'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(493) : error C2011: 'linger' : 'struct' type redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(523) : see declaration of 'linger'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(506) : warning C4005: 'SOMAXCONN' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(536) : see previous definition of 'SOMAXCONN'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(536) : warning C4005: 'FD_READ' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(554) : see previous definition of 'FD_READ'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(539) : warning C4005: 'FD_WRITE' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(555) : see previous definition of 'FD_WRITE'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(542) : warning C4005: 'FD_OOB' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(556) : see previous definition of 'FD_OOB'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(545) : warning C4005: 'FD_ACCEPT' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(557) : see previous definition of 'FD_ACCEPT'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(548) : warning C4005: 'FD_CONNECT' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(558) : see previous definition of 'FD_CONNECT'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(551) : warning C4005: 'FD_CLOSE' : macro redefinition
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(559) : see previous definition of 'FD_CLOSE'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1577) : error C2375: 'accept' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(734) : see declaration of 'accept'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1599) : error C2375: 'bind' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(739) : see declaration of 'bind'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1618) : error C2375: 'closesocket' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(744) : see declaration of 'closesocket'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1637) : error C2375: 'connect' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(746) : see declaration of 'connect'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1658) : error C2375: 'ioctlsocket' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(751) : see declaration of 'ioctlsocket'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1679) : error C2375: 'getpeername' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(756) : see declaration of 'getpeername'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1700) : error C2375: 'getsockname' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(761) : see declaration of 'getsockname'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1723) : error C2375: 'getsockopt' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(766) : see declaration of 'getsockopt'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1744) : error C2375: 'htonl' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(773) : see declaration of 'htonl'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1761) : error C2375: 'htons' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(775) : see declaration of 'htons'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1778) : error C2375: 'inet_addr' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(777) : see declaration of 'inet_addr'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1795) : error C2375: 'inet_ntoa' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(779) : see declaration of 'inet_ntoa'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1896) : error C2375: 'listen' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(781) : see declaration of 'listen'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1914) : error C2375: 'ntohl' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(785) : see declaration of 'ntohl'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1931) : error C2375: 'ntohs' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(787) : see declaration of 'ntohs'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1951) : error C2375: 'recv' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(789) : see declaration of 'recv'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(1976) : error C2375: 'recvfrom' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(795) : see declaration of 'recvfrom'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2002) : error C2375: 'select' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(803) : see declaration of 'select'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2026) : error C2375: 'send' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(810) : see declaration of 'send'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2051) : error C2375: 'sendto' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(816) : see declaration of 'sendto'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2077) : error C2375: 'setsockopt' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(824) : see declaration of 'setsockopt'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2099) : error C2375: 'shutdown' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(831) : see declaration of 'shutdown'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2120) : error C2375: 'socket' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(835) : see declaration of 'socket'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2144) : error C2375: 'gethostbyaddr' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(842) : see declaration of 'gethostbyaddr'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2163) : error C2375: 'gethostbyname' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(847) : see declaration of 'gethostbyname'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2181) : error C2375: 'gethostname' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(849) : see declaration of 'gethostname'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2221) : error C2375: 'getservbyport' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(853) : see declaration of 'getservbyport'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2240) : error C2375: 'getservbyname' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(857) : see declaration of 'getservbyname'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2258) : error C2375: 'getprotobynumber' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(861) : see declaration of 'getprotobynumber'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2275) : error C2375: 'getprotobyname' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(863) : see declaration of 'getprotobyname'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2296) : error C2375: 'WSAStartup' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(867) : see declaration of 'WSAStartup'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2315) : error C2375: 'WSACleanup' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(871) : see declaration of 'WSACleanup'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2332) : error C2375: 'WSASetLastError' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(873) : see declaration of 'WSASetLastError'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2349) : error C2375: 'WSAGetLastError' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(875) : see declaration of 'WSAGetLastError'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2366) : error C2375: 'WSAIsBlocking' : redefinition; different linkage
        c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock.h(877) : see declaration of 'WSAIsBlocking'
c:\Program Files (x86)\Windows Kits\8.0\include\um\winsock2.h(2383) : error C2375: 'WSAUnhookBlockingHook' : redefinition; different linkage
http://logbot.glob.com.au/?c=mozilla%23maildev&s=8+Nov+2013&e=8+Nov+2013#c111226

11:33	RattyAway	https://tbpl.mozilla.org/php/getP...p;tree=Thunderbird-Trunk#error0
11:34	RattyAway	Standard8: sorry to bother you but a clobber didn't fix this error https://tbpl.mozilla.org/php/getP...p;tree=Thunderbird-Trunk#error0
11:35	Standard8	*ouch
11:36	Standard8	RattyAway: I guess some windows includes have changed recently
11:36	Standard8	RattyAway: got a regression range?
11:37	RattyAway	Standard8: sorry having dinner plus need to do things tonight
11:41	* Standard8 suspects http://hg.mozilla.org/mozilla-central/rev/4021b7b381f1#l3.12
11:45	Standard8	looks like nsLDAPConnection.cpp has both winsock.h and winsock2.h includes, that are probably conflicting
11:45	Standard8	I don't know how to fix that without experimenting, and I don't really have a windows build atm
Using forward declaration to avoid include hazard. Philip, can you help test if this patch can solve the Thunderbird build error?
Attachment #829816 - Flags: feedback?(philip.chee)
Comment on attachment 829816 [details] [diff] [review]
netaddr-forward-declaration.patch

(In reply to Shih-Chiang Chien [:schien] from comment #2)
> Created attachment 829816 [details] [diff] [review]
> netaddr-forward-declaration.patch
> 
> Using forward declaration to avoid include hazard. Philip, can you help test
> if this patch can solve the Thunderbird build error?

Tested. Compiles successfully. Thanks muchly.

f=me
Attachment #829816 - Flags: feedback?(philip.chee) → feedback+
Hi Philip, how should I get this patch landed in time for your Thunderbird build? Just follow the regular Gecko review process, landed on m-c, and you guys will merge this patch to Thunderbird build system?
Comment on attachment 829816 [details] [diff] [review]
netaddr-forward-declaration.patch

Using forward declaration to avoid include hazard in Thunderbird.

https://tbpl.mozilla.org/?tree=Try&rev=9826ac1e65ee
Attachment #829816 - Flags: review?(mcmanus)
Assignee: nobody → schien
(In reply to Shih-Chiang Chien [:schien] from comment #4)
> Hi Philip, how should I get this patch landed in time for your Thunderbird
> build?

> Just follow the regular Gecko review process, landed on m-c, and you
> guys will merge this patch to Thunderbird build system?

Yes that's essentially it. The Thunderbird build process will automatically pull from mozilla-*.
Bug 869869 landed on mozilla28 so this can ride the train as usual.
Status: NEW → ASSIGNED
Flags: needinfo?(mbanner)
Attached patch JFTRSplinter Review
Just for the record, I worked out what changes would have been needed to the LDAP SDK to get Thunderbird to build, had it been necessary to go down that route.
Flags: needinfo?(mbanner)
Attachment #829816 - Flags: review?(mcmanus) → review+
(In reply to neil@parkwaycc.co.uk from comment #7)
> Created attachment 830059 [details] [diff] [review]
> JFTR
> 
> Just for the record, I worked out what changes would have been needed to the
> LDAP SDK to get Thunderbird to build, had it been necessary to go down that
> route.

I think we should take your changes to the ldap c-sdk.

"Version 2.1 (winsock2.h) of Winsock was supplied in an add-on package for Windows 95. It was an integral component of Windows 98, Windows NT 4.0, and all subsequent Windows releases. Recent versions of Winsock 2.x have been delivered with new Windows releases or as part of service packs."

Since the minimum version of windows we support is XP SP2, I think replacing winsock.h with winsock2.h should not cause any problems. Are there any other consumers other than comm-central?
update hg comment string, carry r+.
Attachment #829816 - Attachment is obsolete: true
Attachment #830546 - Flags: review+
Accidentally pushed this directly to mozilla-central :) but no problem anyway, I'll watch the tree https://hg.mozilla.org/mozilla-central/rev/6102c7a86726
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 28.0
Blocks: 869869
Keywords: regression
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: