Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <20031116213023.18918.qmail@web21401.mail.yahoo.com> Date: Mon, 17 Nov 2003 08:30:23 +1100 (EST) From: =?iso-8859-1?q?Danny=20Smith?= Subject: RE: Exporting const variables from DLLs (GCC bug?) To: cygwin AT cygwin DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Jon Foster wrote: > Given this source code: > extern const int meaning_of_life __declspec(dllexport); > const int meaning_of_life __declspec(dllexport) = 42; > > > GCC complains: > $ c++ -g -O2 -c test.cxx -o test.o > test.cxx:2: error: external linkage required for symbol 'const int > meaning_of_life' because of 'dllexport' attribute > It is a bug in gcc. The above code compiles okay with C, but strangely, not C++. For some reason, g++ does not immediately mark the the definition of global constants as public when they are defined after a prior declaration. I have a fix that I will submit to gcc-patches after reg-testing Danny http://personals.yahoo.com.au - Yahoo! Personals New people, new possibilities. FREE for a limited time. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/