Closed Bug 490995 Opened 15 years ago Closed 15 years ago

netwerk/wifi assumes Darwin=cocoa

Categories

(Firefox Build System :: General, defect)

All
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: niederstrasser, Assigned: niederstrasser)

References

Details

Attachments

(2 files, 1 obsolete file)

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4
Build Identifier: Mozilla/5.0 (X11; U; Darwin i386; en-US; rv:1.9.1b4) Gecko/20090428 Firefox/3.5b4

Building Firefox under Darwin/X11(gtk2) crashes when building nsWifiScannerUnix.cpp looking for iwlib.h because the Makefile assumes that MOZ_WIDGET_TOOLKIT=gtk2 => unix.  Switching the Makefile from using "ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)" to "ifeq ($(OS_ARCH),Darwin)" lets it build nsWifiScannerMac.cpp successfully instead.

Reproducible: Always

Steps to Reproduce:
1. Build on mac w/ --enable-default-toolkit=cairo-gtk2
Actual Results:  
c++ -o nsWifiScannerUnix.o -c -I../../../dist/include/system_wrappers -include /src/mozilla-central/config/gcc_hidden.h -DMOZILLA_INTERNAL_API -D_IMPL_NS_COM -DEXPORT_XPT_API -DEXPORT_XPTC_API -D_IMPL_NS_COM_OBSOLETE -D_IMPL_NS_GFX -D_IMPL_NS_WIDGET -DIMPL_XREAPI -DIMPL_NS_NET -DIMPL_THEBES  -DZLIB_INTERNAL -DOSTYPE=\"Darwin9.6.0\" -DOSARCH=Darwin -DIMPL_NS_NET  -I/src/mozilla-central/netwerk/wifi/src -I. -I../../../dist/include/xpcom -I../../../dist/include/string -I../../../dist/include/pref -I../../../dist/include/storage -I../../../dist/include   -I../../../dist/include/necko -I/src/mozilla-central/obj-i386-apple-darwin9.6.0-browser/dist/include/nspr -I/src/mozilla-central/obj-i386-apple-darwin9.6.0-browser/dist/include/nss -I/sw/include   -I/src/mozilla-central/obj-i386-apple-darwin9.6.0-browser/dist/sdk/include -I/usr/X11R6/include   -fPIC  -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-long-long -fno-strict-aliasing -fpascal-strings -fno-common -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -Os  -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../mozilla-config.h -Wp,-MD,.deps/nsWifiScannerUnix.pp /src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:40:19: error: iwlib.h: No such file or directory
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:59: error: ‘iw_enum_handler’ has not been declared
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:65: error: ‘iwstats’ has not been declared
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:66: error: expected ‘,’ or ‘...’ before ‘*’ token
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:67: error: ISO C++ forbids declaration of ‘iwrange’ with no type
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp: In function ‘int scan_wifi(int, char*, char**, int)’:
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:78: error: aggregate ‘iwreq wrq’ has incomplete type and cannot be defined
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:80: error: ‘SIOCGIWMODE’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:80: error: ‘iw_get_ext’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:96: error: ‘SIOCGIWESSID’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:105: error: ‘SIOCGIWAP’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:112: error: ‘iwrange’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:112: error: expected `;' before ‘range’
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:113: error: ‘iwstats’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:113: error: expected `;' before ‘stats’
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:114: error: ‘stats’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:114: error: ‘range’ was not declared in this scope
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp: In member function ‘nsresult nsWifiMonitor::DoScan()’:
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:170: error: invalid conversion from ‘int (*)(int, char*, char**, int)’ to ‘int’
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:214: warning: unused variable ‘rv’
/src/mozilla-central/netwerk/wifi/src/nsWifiScannerUnix.cpp:229: error: ‘iw_sockets_close’ was not declared in this scope
make[2]: *** [nsWifiScannerUnix.o] Error 1
Attached patch uses OS_ARCH to pick cpp file (obsolete) — Splinter Review
Attachment #375335 - Flags: review?
Attachment #375335 - Flags: review? → review?(benjamin)
could you fix the windows case too while you're at it?
(In reply to comment #2)
> could you fix the windows case too while you're at it?

This new patch also filters OS_ARCH for WINNT and WINCE rather than using MOZ_WIDGET_TOOLKIT=windows.
Attachment #375335 - Attachment is obsolete: true
Attachment #375335 - Flags: review?(benjamin)
You'll need to get the patch reviewed. Looking at the log at http://hg.mozilla.org/mozilla-central/log/80947d7fa565/netwerk/wifi/Makefile.in dougt might be a candidate.
Comment on attachment 375497 [details] [diff] [review]
changes Windows and Macs to use OS_ARCH

Asking for review as per comment #4.
Attachment #375497 - Flags: review?(doug.turner)
Comment on attachment 375497 [details] [diff] [review]
changes Windows and Macs to use OS_ARCH

can we also change the GTK2.  e.g.:

ifeq ($(OS_ARCH),Linux)
Attachment #375497 - Flags: review?(doug.turner) → review-
Now also picks Linux by arch and not toolkit.
Attachment #375917 - Flags: review?
Attachment #375917 - Flags: review? → review?(doug.turner)
Attachment #375917 - Flags: review?(doug.turner) → review?(ted.mielczarek)
Assignee: nobody → niederstrasser
Status: UNCONFIRMED → NEW
Ever confirmed: true
what about BSD?  Is nsWifiScannerUnix.cpp for BSD as well?  If it's linux-only, then the file should probably be renamed to prevent confusion
jeremy, i have not tested this on BSD and would like to know if it does work on this platform.  it should use the "iwconfig libraries", so if those are on BSD, then it should "just work".
Well I have no way of testing BSD... but my point is that the:

if darwin
else if windows
else if linux

is probably wrong since it excludes bsd... perhaps it should be:

if darwin
else if windows
else
According to #bsd on freenode, BSD uses ifconfig to configure all interfaces, including wireless (an example they gave was 'ifconfig wi0 nwid double mode 11b' to connect to a home wifi).  Also, it doesn't seem to have iwlib.h, which is #included from nsWifiScannerUnix.cpp.

So BSD does seem to need to be excluded at the moment.
Attachment #375917 - Flags: review?(ted.mielczarek) → review+
Who should I reqest an sr from?  I asked on #developers, but didn't get an answer.
this is just build stuff.  r=ted should be fine.
Keywords: checkin-needed
Pushed to m-c:
http://hg.mozilla.org/mozilla-central/rev/4faed2de45ad
Status: NEW → RESOLVED
Closed: 15 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: